EXE加密视频不能看?教你手动解除一机一码限制。

这是网友发的一套无人机实战视频,因为加密了。

未购买播放密码无法观看。网友是有播放密码能正常观看的,想着能不能解出MP4文件。能不能解出后面分析。

现在分析和解决能不能用他的密码在自己电脑上观看?

视频绑了电脑,机器码和播放密码是对应的。因为机器码不一致,输入别人的播放密码出现如下提示:

Illegal password, inconsistent with the current machine code!

于是想,可不可以用别人的机器码替换本机后拿他的播放密码进行播放呢? 作为软件逆向的学习人,根据前面的基础入门知识来试试吧。

打开调试器OllyDBG,把加密的EXE视频拖进调试器内,直接F9运行起来。

视频打开后,出现输入播放密码的界面,前面输入播放密码有个报错。有提示框,那我们根据前面学习的文章中,使用暂停法,去找报错的关键位置。

看堆栈窗口中有个调用来自程序自身,我们双击过去看看汇编代码。

复制代码
E8 EF5EECFF     call <jmp.&user32.MessageBoxW>

汇编窗口中这里调用了提示框。向上翻,看看哪个跳转是到这里的

复制代码
00543310    8D95 F0EAFFFF   lea edx,dword ptr ss:[ebp-0x1510]
00543316    8B85 1CFFFFFF   mov eax,dword ptr ss:[ebp-0xE4]
0054331C    8B80 88030000   mov eax,dword ptr ds:[eax+0x388]
00543322    E8 5D52F3FF     call 第40节:.00478584
00543327    8B95 F0EAFFFF   mov edx,dword ptr ss:[ebp-0x1510]
0054332D    8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
00543330    E8 572EECFF     call 第40节:.0040618C
00543335    74 63           je short 第40节:.0054339A
00543337    8D45 EC         lea eax,dword ptr ss:[ebp-0x14]
0054333A    50              push eax
0054333B    A1 F0FD5400     mov eax,dword ptr ds:[0x54FDF0]
00543340    8B00            mov eax,dword ptr ds:[eax]
00543342    B9 C0395400     mov ecx,第40节:.005439C0                   ; strErrorPlayCode
00543347    BA 98395400     mov edx,第40节:.00543998                   ; frmVerifyMain
0054334C    E8 EB54FEFF     call 第40节:.0052883C
00543351    6A 40           push 0x40
00543353    8D8D ECEAFFFF   lea ecx,dword ptr ss:[ebp-0x1514]
00543359    A1 B4FC5400     mov eax,dword ptr ds:[0x54FCB4]
0054335E    8B00            mov eax,dword ptr ds:[eax]
00543360    05 C0170000     add eax,0x17C0
00543365    BA FF030000     mov edx,0x3FF
0054336A    E8 B54DECFF     call 第40节:.00408124
0054336F    8B85 ECEAFFFF   mov eax,dword ptr ss:[ebp-0x1514]
00543375    E8 5228ECFF     call 第40节:.00405BCC
0054337A    50              push eax
0054337B    8B45 EC         mov eax,dword ptr ss:[ebp-0x14]
0054337E    E8 4928ECFF     call 第40节:.00405BCC
00543383    50              push eax
00543384    8B85 1CFFFFFF   mov eax,dword ptr ss:[ebp-0xE4]
0054338A    E8 19DBF3FF     call 第40节:.00480EA8
0054338F    50              push eax
00543390    E8 EF5EECFF     call <jmp.&user32.MessageBoxW>           ; 错误提示

分析代码看到,前面有个JE跳转,那说明前面2个CALL应该是有做比较。那我们往上看哪里跳转过来的,下个断点跟踪。

分析后看到。前面跳转过来后,40618C地址应该是个比较函数了。同时看寄存器窗口看到分别给EDX,EAX传了值

不难看到这就是机器码。EDX是我们本机的机器码。EAX估计是对应播放密码的机器码。于时我们把EDX改为EAX是不是就和播放密码的机器码对上了?上面猜想一样,修改后JE就实现跳转,错误框就没有了。

9运行程序,视频直接进行播放了。通过逆向软件分析后,发现就这么简单绕过了?这感觉不要太爽,不花一分钱看VIP课程是不是觉得又赚了几百块。 关注下篇讲讲怎么编写程序,动态修改机器码。