simont 发表于 2018-8-23 22:39

逆向分析某加密视频算法与视频还原提取

分析某视频加密软件关键算法与提取
仅个人思路交流与学习。不提供任何程序与源码,大家网上搜索。本篇文章仅作技术交流,文章中软件均来源网络。如有侵权请联系本人或管理人员删帖!


之前发现了一篇:暴力破解某EXE资源加密工具打包文件密码

https://www.52pojie.cn/thread-786478-1-1.html

闲时用里面提供的软件,对视频加密进行了一番探索。发现该版本的加密软件,播放密码如同虚设。可直接无密码进行还原。现在开始讲述下无密码还原的算法。

1、使用软件我们加密一个视频,并对其进行播放,测试该加密软件是否有效。



打开加密视频界面

进入正题:这次我们是分析加密算法与视频提取,其它就不多啰嗦了。
开启OD,直接附加视频播放器。附加上后,找到“播放”按钮功能后单步走,

我们来到此处循环经分析,该处是关键算法解密部分。


我们重点分析:

513F305D    8B4D AC         mov   ecx,dword ptr ss:      ; 读取密文存放处

513F3060    034D 98         add   ecx,dword ptr ss: ;+1

513F3063    0FBE11          movsx   edx,byte ptr ds: 逐字取

513F3066    83F2 05         xor   edx,0x5 ;和0x05进行异或操作

513F3069    8B45 14         mov   eax,dword ptr ss:

513F306C    0345 98         add   eax,dword ptr ss:

513F306F    8810            mov   byte ptr ds:,dl ;保存解密后的数据


该算法比较简单,大家感兴趣自己去跟跟。
大概过程是程序每次读0X800字节的数据,进行循环逐字和0X5进行XOR得到明文,在进行播放。
程序编写思路:
首先读取VPY内的加密数据,真正的视频位置从0X2CF8(该位置从OD中分析得来)加密多个视频测试,是固定位置。
即:05 05 05 1D 63 71 7C75 68 75 31 37 05 05 05 05然后,取每字循环和0X5进行XOR即可。
使用WINHEX测试如下:



解密后:



看到数据显示的是MP4格式的视频头。到此该文章就结束了。 目前没发现生成的播放密码有什么用。

小菜鸟一个,错误之处还请指点。


样品:链接: https://pan.baidu.com/s/1oyF2LH89WoqODoqg5xGYlg密码: nu7c


文件使用破解软件加密,下载请自行杀毒。

Light紫星 发表于 2019-1-8 09:01

hbqjxhw 发表于 2018-8-25 22:03
#include

int main(){


#include <stdio.h>

int main(){
      FILE *fp, *fout;
      char nameIn="windows程序开发窗口截图实现一.vpy", nameOut="windows程序开发窗口截图实现一.MP4";
      static char c,c2;
      fp = fopen(nameIn,"rb");
      fout = fopen(nameOut,"wb");
      fseek(fp, 0x2CF8, SEEK_SET);
      while(1){
                if (fread (&c,1,1,fp)!=1) break;
                c2= c ^ 0x05;
                fwrite(&c2,1,1,fout);
                }
      fclose(fp); fclose(fout);
      return 0;
}

hbqjxhw 发表于 2018-8-25 22:03

#include <stdio.h>

int main(){
        FILE *fp, *fout;
        char nameIn="in.txt", nameOut="out.txt";
        static char c,c2;
        fp = fopen(nameIn,"rb");
        fout = fopen(nameOut,"wb");
        while(1){
                if (fread (&c,1,1,fp)!=1) break;
                c2= c ^ 0x05;
                fwrite(&c2,1,1,fout);
                }
        fclose(fp); fclose(fout);
        return 0;
}
这个还不够完善,如何从偏移0x2CF8截取保存,希望大家来改一改。

吾爱看雪 发表于 2018-8-23 23:18

够暴力,可以的~

小果 发表于 2018-8-24 00:03

厉害厉害,虽然现在还看不太明白

chenjingyes 发表于 2018-8-24 00:25

请问楼主怎么找到其播放按钮的事件对应的代码的??:lol{:1_921:}

生如上善若水 发表于 2018-8-24 01:08

大神,能教下怎样爆破金盾的吗
我的求助帖子:https://www.52pojie.cn/thread-774044-1-1.html

懿蓑烟雨 发表于 2018-8-24 08:23


感谢分享

梦想继续吧 发表于 2018-8-24 08:41

叮咚 来自超时代的警告 -1000热心值

sstm 发表于 2018-8-24 09:25

zhenghui99 发表于 2018-8-24 09:48

我有几十个超时代加密的视频,想提取,就是不会

vvking7 发表于 2018-8-24 10:32

页: [1] 2 3 4 5
查看完整版本: 逆向分析某加密视频算法与视频还原提取