手把手教你破解exe视频
- 格式:doc
- 大小:105.50 KB
- 文档页数:6
我写得不好,看不明白的可以交流下,这里主要讲如何制作内存补丁。
这次破解用的目标文件去下载吧随便找了一个视频文件。
先看下效果:下面是方法:OD载入,很简单,esp定律进入, 8.0,9.0版本的都是一样的壳,9.7版本的不是这个壳了,后边的版本我没看,中断几次后就到了入口。
这个壳没有难度就不一一讲述了。
004A9BD3 > $ E8 00000000 call 004A9BD8004A9BD8 $ 60 pushad004A9BD9 . E8 4F000000 call 004A9C2Desp定律,硬件断点进入壳,004A9BDE . 3C 27 cmp al, 27004A9BE0 . 0BFC or edi, esp004A9BE2 . 67:6A 57 push 57004A9BE5 . 0FAF82 96B1A7>imul eax, dword ptr [edx+4AA7B196]查找字符串00480BF4 mov eax, 00481040 播放授权不合法!00480C03 mov eax, 0048105C 播放授权不正确!00480C82 mov edx, 00481078 yaomediakj1jf00480D4B mov eax, 00481090 播放密码不正确00480D70 push 004810A8 c:\china-drm\00480DAF push 004810C0 .ini00480E43 mov eax, 00481090 播放密码不正确00480E7C mov edx, 004810D0 yaomediakj2jf00480F6C mov eax, 00481090 播放密码不正确00480F98 mov edx, 004810E8 ok00481160 mov edx, 0048141C yaomediakj3jf00481288 mov edx, 00481434 300481294 push 00481440 c:\china-drm\004812BD push 00481458 mediakjjf0048131A mov edx, 0048147C 00048148B mov eax, 004814B4 确信要退出吗?004814CE mov edx, 004814E8 ok进入 00480C82 mov edx, 00481078 yaomediakj1jf 下断点进入 00481160 mov edx, 0048141C yaomediakj3jf 下断点之所以不在yaomediakj2jf下断点那是因为yaomediakj1jf和yaomediakj2jf很近而且这里连续有几个比较,直接跟随便输入8位密码,确定。
00480C82 BA 78104800 mov edx, 00481078 ; yaomediakj1jf00480C87 E8 CC3DF8FF call 00404A5800480C8C 8B85 C4FDFFFF mov eax, dword ptr [ebp-23C]00480C92 8D95 C8FDFFFF lea edx, dword ptr [ebp-238]00480C98 E8 7B2E0000 call 00483B1800480C9D 8B85 C8FDFFFF mov eax, dword ptr [ebp-238]00480CA3 8D95 CCFDFFFF lea edx, dword ptr [ebp-234]00480CA9 E8 7A7AF8FF call 0040872800480CAE 8B85 CCFDFFFF mov eax, dword ptr [ebp-234]00480CB4 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]00480CBA E8 496AFEFF call 0046770800480CBF 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]00480CC5 8D95 D0FDFFFF lea edx, dword ptr [ebp-230]00480CCB E8 AC6AFEFF call 0046777C00480CD0 8B85 D0FDFFFF mov eax, dword ptr [ebp-230]00480CD6 8D8D D4FDFFFF lea ecx, dword ptr [ebp-22C]00480CDC BA 02000000 mov edx, 200480CE1 E8 42E9FAFF call 0042F62800480CE6 8B85 D4FDFFFF mov eax, dword ptr [ebp-22C]00480CEC 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]00480CF2 E8 116AFEFF call 0046770800480CF7 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]00480CFD 8D55 F0 lea edx, dword ptr [ebp-10]00480D05 8D8D C0FDFFFF lea ecx, dword ptr [ebp-240]00480D0B BA 02000000 mov edx, 200480D10 A1 D8AD4800 mov eax, dword ptr [48ADD8]00480D15 E8 0EE9FAFF call 0042F62800480D1A 8B85 C0FDFFFF mov eax, dword ptr [ebp-240]00480D20 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]00480D26 E8 DD69FEFF call 0046770800480D2B 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]00480D31 8D55 EC lea edx, dword ptr [ebp-14]00480D34 E8 436AFEFF call 0046777C00480D39 8B45 F0 mov eax, dword ptr [ebp-10] ;这里放入的是正确的前两位00480D3C 8B55 EC mov edx, dword ptr [ebp-14] ; 注意这里,把你的密码的前两位放入eax进行比较00480D3F E8 583EF8FF call 00404B9C00480D44 0F95C0 setne al00480D47 84C0 test al, al00480D49 74 0F je short 00480D5A内存补丁只能够修改指令,有两种做法,一是直接修改00480D49 把je改成jne 我采用第二种做法,让eax和edx相等直接把00480D3C改为 mov edx,eax 或者是eax, dword ptr [ebp-10]往下一共有4个地方需要改第二处00480E27 E8 4021F8FF call 00402F6C00480E2C E8 F31AF8FF call 0040292400480E31 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的00480E34 8B55 EC mov edx, dword ptr [ebp-14] ; 假的00480E37 E8 603DF8FF call 00404B9C第三处00480E48 E8 77B8FAFF call 0042C6C400480E4D E9 69010000 jmp 00480FBB00480E52 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的00480E55 8B55 EC mov edx, dword ptr [ebp-14] ; 假的00480E58 E8 3F3DF8FF call 00404B9C第四处00480F46 8D95 E8FDFFFF lea edx, dword ptr [ebp-218]00480F4C E8 B767FEFF call 0046770800480F51 8D85 E8FDFFFF lea eax, dword ptr [ebp-218]00480F57 8D55 EC lea edx, dword ptr [ebp-14]00480F5A E8 1D68FEFF call 0046777C00480F5F 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的00480F62 8B55 EC mov edx, dword ptr [ebp-14] ; 假的00480F6A 74 0C je short 00480F7800480F6C B8 90104800 mov eax, 00481090 ; 播放密码不正确第五处由于这里是先得到假的所以不能用mov eax,edx了直接把mov的地址指向正确的地址了,改为mov eax, dword ptr [ebp-10]00480F8E E8 59050000 call 004814EC00480F93 A1 047F4800 mov eax, dword ptr [487F04]00480F98 BA E8104800 mov edx, 004810E8 ; ok 00480F9D E8 4238F8FF call 004047E400480FA2 8B55 EC mov edx, dword ptr [ebp-14] ; 假的,这里得注意一下,这里是先入的eax00480FA5 8B45 F0 mov eax, dword ptr [ebp-10] ; 真的00480FA8 E8 B777F8FF call 00408764第六处F9运行,到达yaomediakj3jf 往下,这次不能直接修改比较的地址了,貌似用两位有特殊用处,如果该比较的地址,能进入播放界面但是不能播放视频。
经过跟踪,发现在比较的前边,有一个截取输入的密码最后两位的动作,不知道是做什么用的。
把004811DE指向正确的地址就行,由于004811B6到004811DE ebp都没变化,计算都省略了,直接改为mov eax, dword ptr [ebp-30]004811AC BA 02000000 mov edx, 2004811B1 E8 E2E4FAFF call 0042F698004811B6 8B45 D0 mov eax, dword ptr [ebp-30] ; 正确的最后两位的播放密码004811B9 8D55 D4 lea edx, dword ptr [ebp-2C]004811BC E8 4765FEFF call 00467708004811C1 8D45 D4 lea eax, dword ptr [ebp-2C]004811C4 8D55 FC lea edx, dword ptr [ebp-4]004811C7 E8 B065FEFF call 0046777C004811CC 8D4D B8 lea ecx, dword ptr [ebp-48]004811CF BA 02000000 mov edx, 2004811D4 A1 D8AD4800 mov eax, dword ptr [48ADD8]004811D9 E8 BAE4FAFF call 0042F698004811DE 8B45 B8 mov eax, dword ptr [ebp-48] ; 把错误的播放密码放进去了004811E1 8D55 D4 lea edx, dword ptr [ebp-2C]004811E4 E8 1F65FEFF call 00467708004811E9 8D45 D4 lea eax, dword ptr [ebp-2C]004811EC 8D55 F8 lea edx, dword ptr [ebp-8]004811EF E8 8865FEFF call 0046777C004811F4 8B45 FC mov eax, dword ptr [ebp-4]004811F7 8B55 F8 mov edx, dword ptr [ebp-8]004811FA E8 9D39F8FF call 00404B9CF9 开始播放至此一共修改了第一处00480D3C 8B55 EC mov edx, dword ptr [ebp-14]00480D3C 8B55 F0 mov eax, dword ptr [ebp-10]第二处00480E34 8B55 EC mov edx, dword ptr [ebp-14]00480E34 8B55 F0 mov edx, dword ptr [ebp-10]第三处00480E55 8B55 EC mov edx, dword ptr [ebp-14]00480E55 8B55 F0 mov edx, dword ptr [ebp-10]第四处00480F62 8B55 EC mov edx, dword ptr [ebp-14]00480F62 8B55 F0 mov edx, dword ptr [ebp-10]第五处00480FA2 8B55 EC mov edx, dword ptr [ebp-14]00480FA2 8B55 F0 mov edx, dword ptr [ebp-10]第六处004811DE 8B45 B8 mov eax, dword ptr [ebp-48]004811DE 8B45 D0 mov eax, dword ptr [ebp-30]Keymake很简单在菜单中选择内存补丁,然后依次填入,再点击生成就可以了,8.0,9.0的壳有校验,如果用文件补丁的话会出错最后顺便把防止翻录破了在查找字符串中找到00482F3A edx, 00483118 scap.exe|camtasia|captivate|capture|easysnap|fsvideo|hprsnap|course ware|htserver|hycam|lcsc.exe|m4uscreen|scrcam|myscrmycut|屏录|ly.exe|sph.exe|rdfsnap|screencapture|snagit|screenvcr|wmenc.exe|screen|flash|v iew|letcam|audio|lxj.exe|snap|vampire|webex双击进去00482F1C E8 03FBFFFF call 00482A2400482F21 85C0 test eax, eax00482F23 0F84 9D010000 je 004830C600482F29 8D55 F0 lea edx, dword ptr [ebp-10]00482F2C 8B85 CCFEFFFF mov eax, dword ptr [ebp-134]00482F32 E8 BD030000 call 004832F400482F37 8D45 F4 lea eax, dword ptr [ebp-C]00482F3A BA 18314800 mov edx, 00483118 ; scap.exe|camtasia|captivate|capture|easysnap|fsvideo|hprsnap|courseware|htserve r|hycam|lcsc.exe|m4uscreen|scrcam|myscrmycut|屏录|ly.exe|sph.exe|rdfsnap|screencapture|snagit|screenvcr|wmenc.exe|screen|flash|view|letcam|audio|lxj.exe|snap|vampire|webex00482F3F E8 E418F8FF call 00404828把00482F23改为jne就可以了和上边一样填入Keymake完成8.0版本和9.0版本的破解方法一样只是输入密码的时候需要输入以9d打头的共18位字符。