冰点还原6.61 For Win2003 打造全过程

 冰点还原6.61 For Win2003 打造全过程
For
1. 需要工具:PEiD0.94,AspackDie1.41,OllyDBG 1.10
2. 打开PEID0.94查壳,显示:ASPack 2.12 -> Alexey Solodovnikov [Overlay],我们可以用上面的工具AspackDie1.41自动来脱.
3. 首先我们要知道冰点为什么不能装在2003系统上,因为它先取得当前是什么系统然后再判断,如果是服务器版就不安装,我们只
要修改成是服务器版也安装就行了。
4. 用OllyDBG 1.10打开脱了壳的冰点下面这个地方停住。
0040151C > $ /EB 10         jmp     short 0040152E
0040151E   . |66:623A       bound   di, dword ptr [edx]
00401521   . |43            inc     ebx
00401522   . |2B2B          sub     ebp, dword ptr [ebx]
00401524   . |48            dec     eax
00401525   . |4F            dec     edi
00401526   . |4F            dec     edi
00401527   . |4B            dec     ebx
00401528   . |90            nop
00401529   .-|E9 98D05100   jmp     0091E5C6
0040152E   > \A1 8BD05100   mov     eax, dword ptr [51D08B]
00401533   .  C1E0 02       shl     eax, 2
00401536   .  A3 8FD05100   mov     dword ptr [51D08F], eax
0040153B   .  52            push    edx
0040153C   .  6A 00         push    0                                ; /pModule = NULL
0040153E   .  E8 D1A91100   call    <jmp.KERNEL32.GetModuleHandleA> ; \GetModuleHandleA
00401543   .  8BD0          mov     edx, eax

然后我们输入 Bpx GetVersionExA 命令回车下断点,就是在冰点调用 GetVersionExA 系统API取系统版本时断掉。然后按Alt + B
我们发现有 9 处断点要一个一个的跟了。关掉断点窗口按 F9 运行程序后程序中断在第一个断点此时还没有看到窗口可能不在这个
位置,再按下F9程序停在第二个断点处,现在依然看不到窗口,直到第五次冰点窗口跳出,程序中断在下面这个地方:

00404AB0  |.  E8 DD741100   call    <jmp.KERNEL32.GetVersionExA>    ; \GetVersionExA
00404AB5  |.  85C0          test    eax, eax
00404AB7  |.  74 1C         je      short 00404AD5
00404AB9  |.  80BD 76FFFFFF>cmp     byte ptr [ebp-8A], 2
00404AC0  |.  74 09         je      short 00404ACB
00404AC2  |.  80BD 76FFFFFF>cmp     byte ptr [ebp-8A], 3
00404AC9  |.  75 0A         jnz     short 00404AD5
00404ACB  |>  C785 78FFFFFF>mov     dword ptr [ebp-88], 1
00404AD5  |>  83BD 78FFFFFF>cmp     dword ptr [ebp-88], 0
00404ADC  |.  0F84 BC000000 je      00404B9E
00404AE2  |.  66:C745 9C 54>mov     word ptr [ebp-64], 54
00404AE8  |.  6A 00         push    0
00404AEA  |.  6A 00         push    0
00404AEC  |.  6A 1D         push    1D
00404AEE  |.  E8 9D2D0300   call    00437890
00404AF3  |.  83C4 0C       add     esp, 0C
00404AF6  |.  8BD0          mov     edx, eax
00404AF8  |.  8D45 D8       lea     eax, dword ptr [ebp-28]
00404AFB  |.  E8 F0311000   call    00507CF0
00404B00  |.  FF45 A8       inc     dword ptr [ebp-58]
00404B03  |.  8D55 D8       lea     edx, dword ptr [ebp-28]
00404B06  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
00404B09  |.  E8 B6331000   call    00507EC4
00404B0E  |.  FF4D A8       dec     dword ptr [ebp-58]
00404B11  |.  8D45 D8       lea     eax, dword ptr [ebp-28]
00404B14  |.  BA 02000000   mov     edx, 2
00404B19  |.  E8 76331000   call    00507E94
00404B1E  |.  8B4D 88       mov     ecx, dword ptr [ebp-78]
00404B21  |.  83B9 9C040000>cmp     dword ptr [ecx+49C], 0
00404B28  |.  74 1B         je      short 00404B45
00404B2A  |.  8B45 88       mov     eax, dword ptr [ebp-78]
00404B2D  |.  8B90 9C040000 mov     edx, dword ptr [eax+49C]
00404B33  |.  52            push    edx
00404B34  |.  E8 4F550E00   call    004EA088

好了,这里我们重头再来一次,但注意一下,这次我们按了4次F9后就不要再按了,换为按F8一步步慢慢的跟进!
来到这里
00404AC9  |. /75 0A         jnz     short 00404AD5          ;主意这个是关键跳转,不相等则跳到00404AD5,再按一次F8,这个
指令没有跳转,而继续动行下面代码了,然后跳出什么不能安装消息。
00404ACB  |> |C785 78FFFFFF>mov     dword ptr [ebp-88], 1
00404AD5  |> \83BD 78FFFFFF>cmp     dword ptr [ebp-88], 0   
00404ADC  |.  0F84 BC000000 je      00404B9E
00404AE2  |.  66:C745 9C 54>mov     word ptr [ebp-64], 54
00404AE8  |.  6A 00         push    0
00404AEA  |.  6A 00         push    0
00404AEC  |.  6A 1D         push    1D
00404AEE  |.  E8 9D2D0300   call    00437890
00404AF3  |.  83C4 0C       add     esp, 0C
00404AF6  |.  8BD0          mov     edx, eax
00404AF8  |.  8D45 D8       lea     eax, dword ptr [ebp-28]
00404AFB  |.  E8 F0311000   call    00507CF0
00404B00  |.  FF45 A8       inc     dword ptr [ebp-58]
00404B03  |.  8D55 D8       lea     edx, dword ptr [ebp-28]
00404B06  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
00404B09  |.  E8 B6331000   call    00507EC4
00404B0E  |.  FF4D A8       dec     dword ptr [ebp-58]
00404B11  |.  8D45 D8       lea     eax, dword ptr [ebp-28]
00404B14  |.  BA 02000000   mov     edx, 2
00404B19  |.  E8 76331000   call    00507E94
00404B1E  |.  8B4D 88       mov     ecx, dword ptr [ebp-78]
00404B21  |.  83B9 9C040000>cmp     dword ptr [ecx+49C], 0
00404B28  |.  74 1B         je      short 00404B45
00404B2A  |.  8B45 88       mov     eax, dword ptr [ebp-78]
00404B2D  |.  8B90 9C040000 mov     edx, dword ptr [eax+49C]
00404B33  |.  52            push    edx
00404B34  |.  E8 4F550E00   call    004EA088
00404B39  |.  59            pop     ecx
00404B3A  |.  8B4D 88       mov     ecx, dword ptr [ebp-78]
00404B3D  |.  33C0          xor     eax, eax
00404B3F  |.  8981 9C040000 mov     dword ptr [ecx+49C], eax
00404B45  |>  8B55 F4       mov     edx, dword ptr [ebp-C]
00404B48  |.  52            push    edx
00404B49  |.  8B4D 88       mov     ecx, dword ptr [ebp-78]
00404B4C  |.  51            push    ecx
00404B4D  |.  E8 36460000   call    00409188                ;在00404AC9处一直按F8来到此行跳出什么不能安装消息!
现在我们知道00404AC9这个是能否在2003上安装的所在了,现在把这个不相等则跳改成相等则跳,做法是鼠标双击这行把 JNZ 改成
JZ 确认后在鼠标右键菜单里选 “复制到可执行文件” -> “所有修改” -> “全部复制” 再在弹出的窗口中点右键选保存文件
,选你好你放文件的位置,OK,到这里大功告成,生成的文件就支持Win2003啦!

快速修改法,用UE打开脱壳的冰点定位到0X00004AC9,然后将此处的 75改成EB 或74, 建议EB会好点。

2010.9.28更新
OD的调试过程我就不更新了,这里只给出用UE修改的方法: DF7.0.20修改支持2003  用UE打开脱壳的冰点把0X00004BDD的 75改成EB 或74, 建议EB会好点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值