逆向分析某加密视频算法与视频还原提取
分析某视频加密软件关键算法与提取仅个人思路交流与学习。不提供任何程序与源码,大家网上搜索。本篇文章仅作技术交流,文章中软件均来源网络。如有侵权请联系本人或管理人员删帖!
之前发现了一篇:暴力破解某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
文件使用破解软件加密,下载请自行杀毒。 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;
}
#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截取保存,希望大家来改一改。 够暴力,可以的~ 厉害厉害,虽然现在还看不太明白 请问楼主怎么找到其播放按钮的事件对应的代码的??:lol{:1_921:} 大神,能教下怎样爆破金盾的吗
我的求助帖子:https://www.52pojie.cn/thread-774044-1-1.html
感谢分享 叮咚 来自超时代的警告 -1000热心值 我有几十个超时代加密的视频,想提取,就是不会