这是网友发的一套无人机实战视频,因为加密了。
未购买播放密码无法观看。网友是有播放密码能正常观看的,想着能不能解出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课程是不是觉得又赚了几百块。 关注下篇讲讲怎么编写程序,动态修改机器码。