在进程的内存转储中找到视频文件

时间:2019-07-05 00:37:41

标签: security encryption video reverse-engineering memory-dump

我有一个播放器,可以播放加密的视频文件,其工作方式如下:

  1. 我用它打开一个加密的视频文件
  2. 它将视频文件解密并将其写入内存
  3. 然后从内存中播放文件

,我想从内存中复制解密的视频文件,并使用VLC之类的普通视频播放器进行播放,因此我尝试通过任务管理器创建其内存转储,并希望在那里找到视频文件。可悲的是,我还不了解从内存中找到很大一部分的视频文件。我试图在十六进制编辑器中找到mp4模式,并完成了我在网上找到的所有解决方案,但对我没有任何帮助,所以我希望这里的人有一个主意,并愿意帮助我实现这一目标。

我上传了它的内存转储here(在用它打开简短的加密视频之后)

2 个答案:

答案 0 :(得分:1)

最有可能的是,该软件并不是一口气就能解码整个视频文件,而是以流媒体的方式解码。这样就无法在内存转储中找到解码视频数据可用的片刻。

如果播放器软件是开源的,请使用调试符号对其进行编译并在调试器下运行。否则,求助于逆向工程。

答案 1 :(得分:0)

我一般认为StackOverflow的问题不是on-topic,包括但不限于专门逆转用于数字版权管理的软件解决方案。但是我仍然会留下答案。

首先,正如评论所暗示的,所讨论的话题是由商业提供商提供的特定解决方案的逆转。从内存转储中恢复媒体文件的能力在很大程度上取决于此解决方案的实现以及提供者用来使逆转复杂化的方法。这只是最简单,直接的解决方案,易于逆转,而开发人员投入的覆盖范围越多,逆转就越困难。

即使有很少的机会(通过内存转储分析)在内存中找到完整的原始文件,对于任何媒体播放应用程序也不可能实现,即使不执行任何解密也是如此。媒体播放通常是流式传输:从磁盘,存储设备,网络等加载数据是播放所必需的,而不是完全下载的。解密需要应用于暂时需要的某些数据,然后,启用了DRM的体面应用程序将在不再需要临时清除的数据时立即删除它们。也就是说,内存转储最多只能包含少量的媒体数据。

要捕获/还原原始媒体文件,通常必须将自己作为中间人放置在一些与媒体流相关的过程中,并且能够在流媒体播放期间复制数据。静态内存转储在这里无济于事。