好友
阅读权限20
听众
最后登录1970-1-1
|
本帖最后由 twfy914 于 2009-12-15 13:46 编辑
这个地址是 8.0,9.7 内存补丁方法
http://www.52pojie.cn/viewthread.php?tid=35443
下边是正文 10.3版本的方法
昨天官方下载的飓风 用10.3版随便加密一个视频,od载入
004D9363 跟进入
004D934D 52 push edx
004D934E E8 FBFEFFFF call 004D924E
004D9353 68 25934D00 push 004D9325
004D9358 39CE cmp esi, ecx
004D935A 73 01 jnb short 004D935D
004D935C C3 retn
004D935D 81C4 04000000 add esp, 4
004D9363 E8 2AFFFFFF call 004D9292 ; 跟进入
004D9368 ^ 79 8A jns short 004D92F4
004D936A 2F das
004D936B FD std
这里面没什么东东,F8 到 004D92CE C3 retn 返回
鼠标选择 008D504A F4运行 ,这里注意一下,有的时候 这里会飞,没关系,重来就是
008D500A 8B15 00508D00 mov edx, dword ptr [8D5000] ; <&kernel32.GetModuleHandleA>
008D5010 FF32 push dword ptr [edx]
008D5012 8F05 00508D00 pop dword ptr [8D5000] ; <&kernel32.GetModuleHandleA>
008D5018 EB 06 jmp short 008D5020
008D501A 8F05 00508D00 pop dword ptr [8D5000] ; <&kernel32.GetModuleHandleA>
008D5020 B8 04308D00 mov eax, 008D3004
008D5025 8338 00 cmp dword ptr [eax], 0
008D5028 74 20 je short 008D504A
008D502A 50 push eax
008D502B FF70 04 push dword ptr [eax+4]
008D502E FF30 push dword ptr [eax]
008D5030 50 push eax
008D5031 830424 08 add dword ptr [esp], 8
008D5035 E8 B6090000 call 008D59F0
008D503A 83C4 0C add esp, 0C
008D503D 58 pop eax
008D503E 8B10 mov edx, dword ptr [eax]
008D5040 C1E2 02 shl edx, 2
008D5043 01D0 add eax, edx
008D5045 83C0 08 add eax, 8
008D5048 ^ EB DB jmp short 008D5025
008D504A E9 59120000 jmp 008D62A8
008D504F 56 push esi
F8 接着走 008D62A9 这个call 进入
008D62A8 60 pushad
008D62A9 E8 4F000000 call 008D62FD
008D62AE 6F outs dx, dword ptr es:[edi]
008D62AF 85F3 test ebx, esi
又是一个call 接着进入
008D62FD E8 BEF6FFFF call 008D59C0
F4 运行到 008D59E0 F7单步进入
008D59C0 8B4424 04 mov eax, dword ptr [esp+4] ; 1.008D62AE
008D59C4 50 push eax
008D59C5 8B4424 04 mov eax, dword ptr [esp+4]
008D59C9 50 push eax
008D59CA E8 E1FDFFFF call 008D57B0
008D59CF 58 pop eax
008D59D0 E8 DB0B0000 call 008D65B0
008D59D5 870424 xchg dword ptr [esp], eax
008D59D8 58 pop eax
008D59D9 894424 24 mov dword ptr [esp+24], eax
008D59DD 61 popad
008D59DE 58 pop eax
008D59DF 58 pop eax
008D59E0 FFD0 call eax
008D59E2 E8 A9EB0000 call 008E4590
F4 到 004D9B60 的call F7进入
004D9AFC 55 push ebp ; (initial cpu selection)
004D9AFD 8BEC mov ebp, esp
004D9AFF 83C4 F0 add esp, -10
004D9B02 B8 347F4D00 mov eax, 004D7F34
004D9B07 E8 48DEF2FF call 00407954
004D9B0C A1 E0084E00 mov eax, dword ptr [4E08E0]
004D9B11 8B00 mov eax, dword ptr [eax]
004D9B13 E8 848EF9FF call 0047299C
004D9B18 A1 E0084E00 mov eax, dword ptr [4E08E0]
004D9B1D 8B00 mov eax, dword ptr [eax]
004D9B1F BA 749B4D00 mov edx, 004D9B74 ; play
004D9B24 E8 4389F9FF call 0047246C
004D9B29 8B0D 880A4E00 mov ecx, dword ptr [4E0A88] ; 1.004E6044
004D9B2F A1 E0084E00 mov eax, dword ptr [4E08E0]
004D9B34 8B00 mov eax, dword ptr [eax]
004D9B36 8B15 4C444D00 mov edx, dword ptr [4D444C] ; 1.004D4498
004D9B3C E8 738EF9FF call 004729B4
004D9B41 8B0D EC0A4E00 mov ecx, dword ptr [4E0AEC] ; 1.004E5F78
004D9B47 A1 E0084E00 mov eax, dword ptr [4E08E0]
004D9B4C 8B00 mov eax, dword ptr [eax]
004D9B4E 8B15 68114D00 mov edx, dword ptr [4D1168] ; 1.004D11B4
004D9B54 E8 5B8EF9FF call 004729B4
004D9B59 A1 E0084E00 mov eax, dword ptr [4E08E0]
004D9B5E 8B00 mov eax, dword ptr [eax]
004D9B60 E8 CF8EF9FF call 00472A34
004D9B65 E8 3EB7F2FF call 004052A8
ok,到达这里壳已经跑完了,可以开始破解了,设置一个硬件执行断点备用好了,免得重调的话还得去跟踪壳。右键》断点》硬件执行断点,顺便把硬件断点下边的SFX真正的入口给设置上得了
00472A34 55 push ebp ; (initial cpu selection)
00472A35 8BEC mov ebp, esp
00472A37 51 push ecx
00472A38 53 push ebx
00472A39 56 push esi
00472A3A 57 push edi
00472A3B 8945 FC mov dword ptr [ebp-4], eax
00472A3E 8B45 FC mov eax, dword ptr [ebp-4]
00472A41 C680 AD000000 0>mov byte ptr [eax+AD], 1
00472A48 33D2 xor edx, edx
00472A4A 55 push ebp
00472A4B 68 482B4700 push 00472B48
---------------------------------------------------------------
和8.0,9.7一样 查找字符串
然后找到 yaomediakj3jf 之前的md5比较改掉,和8.0,9.7的方法一样,一共4处
10.3版就三处需要注意
一是 004D1851 播放授权不合法的检查
二是 004D1908 播放授权不正确的检测
004D184E 83F8 05 cmp eax, 5
004D1851 0F85 C2000000 jnz 004D1919
004D1857 8D4D DC lea ecx, dword ptr [ebp-24]
004D185A BA 04000000 mov edx, 4
004D185F 8B45 E4 mov eax, dword ptr [ebp-1C]
004D1862 E8 D5A5F6FF call 0043BE3C
004D1867 8B7D E4 mov edi, dword ptr [ebp-1C]
004D186A 85FF test edi, edi
004D186C 74 05 je short 004D1873
004D186E 83EF 04 sub edi, 4
004D1871 8B3F mov edi, dword ptr [edi]
004D1873 8D8D D8FDFFFF lea ecx, dword ptr [ebp-228]
004D1879 8BD7 mov edx, edi
004D187B 83EA 04 sub edx, 4
004D187E 8B45 E4 mov eax, dword ptr [ebp-1C]
004D1881 E8 9AA5F6FF call 0043BE20
004D1886 8B95 D8FDFFFF mov edx, dword ptr [ebp-228]
004D188C 8D45 E4 lea eax, dword ptr [ebp-1C]
004D188F E8 743CF3FF call 00405508
004D1894 FF35 885F4E00 push dword ptr [4E5F88]
004D189A 68 58294D00 push 004D2958 ; `
004D189F FF75 E8 push dword ptr [ebp-18]
004D18A2 68 58294D00 push 004D2958 ; `
004D18A7 FF75 E0 push dword ptr [ebp-20]
004D18AA 68 58294D00 push 004D2958 ; `
004D18AF FF75 E4 push dword ptr [ebp-1C]
004D18B2 8D85 BCFDFFFF lea eax, dword ptr [ebp-244]
004D18B8 BA 07000000 mov edx, 7
004D18BD E8 5E3FF3FF call 00405820
004D18C2 8B85 BCFDFFFF mov eax, dword ptr [ebp-244]
004D18C8 8D95 C0FDFFFF lea edx, dword ptr [ebp-240]
004D18CE E8 7539FAFF call 00475248
004D18D3 8D85 C0FDFFFF lea eax, dword ptr [ebp-240]
004D18D9 8D95 D0FDFFFF lea edx, dword ptr [ebp-230]
004D18DF E8 DC39FAFF call 004752C0
004D18E4 8B85 D0FDFFFF mov eax, dword ptr [ebp-230]
004D18EA 8D8D D4FDFFFF lea ecx, dword ptr [ebp-22C]
004D18F0 BA 04000000 mov edx, 4
004D18F5 E8 26A5F6FF call 0043BE20
004D18FA 8B85 D4FDFFFF mov eax, dword ptr [ebp-22C]
004D1900 8B55 DC mov edx, dword ptr [ebp-24]
004D1903 E8 AC3FF3FF call 004058B4
004D1908 74 1E je short 004D1928
004D190A B8 64294D00 mov eax, 004D2964 ; 播放授权不合法!
004D190F E8 DC41F7FF call 00445AF0
004D1914 E9 420F0000 jmp 004D285B
004D1919 B8 80294D00 mov eax, 004D2980 ; 播放授权不正确!
第三处需要注意的地方
004D2C93 这里是正确的数在的地方,这次没法象前两个版本那样直接改一条指令了,这次改动大点,
把
004D2CBD A1 885F4E00 mov eax, dword ptr [4E5F88]
004D2CC2 E8 7591F6FF call 0043BE3C
两条指令给干掉 ,替换成
004D2CBD 8B85 04FEFFFF mov eax, dword ptr [ebp-1FC]
004D2CC3 8901 mov dword ptr [ecx], eax
004D2CC5 90 nop
004D2CC6 90 nop
至于未来的其他版本,根据具体情况替换没用的指令就是了,估计他们未来的改动不会大。
ok,任务完成。
内存补丁和上文写法一致,只是注意一下,Keymake不支持替换指令长度和原指令长度不一致的改法,需要把新指令拼凑一下。
总结,飓风的版本差异对于这种破解方法基本无视,无非就是修改了一下补丁地址罢了。密码无视。飓风10.3的壳实在太简单,无视。虽然PEid没查出是什么壳,我这么菜的人也就花了两个小时就跟到了,更别提高手了。 还有啊,新手们也不要把这个想象得很难,其实,我也是连汇编指令也认不全的。
如上文所说,我连指令都认不全。至于这个破解,根本是照着CHHSun老兄的破解做的。 http://www.52pojie.cn/viewthread.php?tid=24246
不同的是,我做了一个内存补丁。而我本人更期望做的是程序设计-人工智能之内的东东。至于破解飓风,原因是我购买了某网站的视频教程,找管理员算号管理员还问七问八的烦人,主动权还是掌握在自己手里比较好,正好我们公司调试高手多多,咨询起来也容易,才在CHHSun老兄的基础上花了一个礼拜去跟踪,从od入门一直一步步跟踪找到内存补丁的修改方法。一个版本跟到了,其他版本也就大同小异了。
|
免费评分
-
查看全部评分
|