[转贴]DF6.0标准版 For Win2003 打造全过程

[转贴]DF6.0标准版 For Win2003 打造全过程 - 故障解答 - 电脑教程网

[转贴]DF6.0标准版 For Win2003 打造全过程

日期:2006-06-06   荐:
最近,用Win2003做网吧系统的盟友越来越多了,但是除了花钱的硬件还原外就没有什么好的还原系统了,而冰点这个在网吧界红的发紫的牛软在国内有又没有 For Server 版本的,及使有也在那些少数人手中,不愿拿出来分享。目前我们只能自已动手从普通版本改造。以前只有一个 5.30版本的被某位网盟修改为 For 2003的但是有诸多限制基本上说跟本没有用,他要收费才帮别人定做适合的版本,后来因为自已大意被一位可爱的盟友发现后拿出来造福网盟了,但是这种方法只能用在5.30版本,现在的冰点已到6.0了,Win2003用户还只能用5.30 ,当然个别牛人除外。别人说授人以鱼不如授人以渔。现在我这个Cacker小菜菜来简单的讲下方法,能让所有普通版本的冰点还原支持Win2003。

此贴大家不用特意去顶,能进来看下就行,希望对你有用,别外希望有DF6.0专业版或企业版的盟友能拿出来分享,我在这里说声谢谢。

原版地址:http://bbs.txwm.com/dispbbs.asp?boardID=190&ID=452266&page=2

我改好的For Win2003版地址:http://bbs.58we.com/softdown/DF6.00.020.1523forWin2003.rar

=====================================================================

首先我们知道,Win2003是在WinXp的基础上开发出来的,只比XP多了一些服务另性能和稳定方面更优秀一些,一般理论上来说大份软件XP能用的软件2K3也应该能用。冰点我们已经确认可以用在Win2003上。下面是具体步骤。

----------------

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打开脱了壳的冰点下面这个地方停住。

004014F4 > $ /EB 10       JMP SHORT DF6_00_0.00401506
004014F6   . |66:623A     BOUND DI,DWORD PTR DS:[EDX]
004014F9   . |43         INC EBX
004014FA   . |2B2B       SUB EBP,DWORD PTR DS:[EBX]
004014FC   . |48         DEC EAX
004014FD   . |4F         DEC EDI
004014FE   . |4F         DEC EDI
004014FF   . |4B         DEC EBX
00401500   . |90         NOP
00401501   .-|E9 98805200   JMP 0092959E
00401506   > \A1 8B805200   MOV EAX,DWORD PTR DS:[52808B]
0040150B   . C1E0 02     SHL EAX,2
0040150E   . A3 8F805200   MOV DWORD PTR DS:[52808F],EAX
00401513   . 52         PUSH EDX
00401514   . 6A 00       PUSH 0                       ; /pModule = NULL
00401516   . E8 2D551200   CALL <JMP.&KERNEL32.GetModuleHandleA>   ; \GetModuleHandleA
0040151B   . 8BD0       MOV EDX,EAX
0040151D   . E8 2E120C00   CALL DF6_00_0.004C2750

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

00443135 |. E8 8C390E00   CALL <JMP.&KERNEL32.GetVersionExA>     ; \GetVersionExA
0044313A |. 8945 FC     MOV DWORD PTR SS:[EBP-4],EAX
0044313D |. 85C0       TEST EAX,EAX
0044313F |. 75 21       JNZ SHORT DF6_00_0.00443162
00443141 |. C785 54FFFFFF>MOV DWORD PTR SS:[EBP-AC],94
0044314B |. 8D95 54FFFFFF LEA EDX,DWORD PTR SS:[EBP-AC]
00443151 |. 52         PUSH EDX                       ; /pVersionInformation
00443152 |. E8 6F390E00   CALL <JMP.&KERNEL32.GetVersionExA>     ; \GetVersionExA
00443157 |. 85C0       TEST EAX,EAX
00443159 |. 75 07       JNZ SHORT DF6_00_0.00443162
0044315B |. 33C0       XOR EAX,EAX
0044315D |. E9 5F030000   JMP DF6_00_0.004434C1
00443162 |> 8B95 64FFFFFF MOV EDX,DWORD PTR SS:[EBP-9C]
00443168 |. 83EA 01     SUB EDX,1                     ; Switch (cases 0..2)
0044316B |. 0F82 3C030000 JB DF6_00_0.004434AD
00443171 |. 0F84 6A020000 JE DF6_00_0.004433E1
00443177 |. 4A         DEC EDX
00443178 |. 0F85 41030000 JNZ DF6_00_0.004434BF
0044317E |. 83BD 58FFFFFF>CMP DWORD PTR SS:[EBP-A8],4         ; Case 2 of switch 00443168
00443185 |. 77 14       JA SHORT DF6_00_0.0044319B
00443187 |. 85FF       TEST EDI,EDI
00443189 |. 74 0E       JE SHORT DF6_00_0.00443199
0044318B |. 68 DCBF5400   PUSH DF6_00_0.0054BFDC             ; /Arg2 = 0054BFDC ASCII "Microsoft Windows NT "
00443190 |. 57         PUSH EDI                       ; |Arg1
00443191 |. E8 16090800   CALL DF6_00_0.004C3AAC             ; \DF6_00_0.004C3AAC
00443196 |. 83C4 08     ADD ESP,8
00443199 |> B3 0C       MOV BL,0C

注意了,关键就在这里,现在按F8慢慢跟,要有耐心,慢慢的我们来到这里:

004042DA   . 83C4 08     ADD ESP,8
004042DD   . 84C0       TEST AL,AL
004042DF   . 74 56       JNZ SHORT DF6_00_0.00404337           ;主意这个是关键跳转,不相等则跳到00404377,再按一次F8,这个指令没有跳转,而继续动行下面代码了,然后跳出什么不能安装消息后退出了。

然后我们把这个不相等则跳改成相等则跳,做法是鼠标双击这行把 JNZ 改成 JZ 确认后在鼠标右键菜单里选 “复制到可执行文件” -> “所有修改” -> “全部复制” 再在弹出的窗口中点右键选保存文件,选你好你放文件的位置,OK,到这里大功告成,生成的文件就支持Win2003啦!


004042E1   . FF75 F8     PUSH DWORD PTR SS:[EBP-8]           ; /Arg2
004042E4   . FFB5 9CFDFFFF PUSH DWORD PTR SS:[EBP-264]         ; |Arg1
004042EA   . E8 F1530000   CALL DF6_00_0.004096E0             ; \DF6_00_0.004096E0
004042EF   . 83C4 08     ADD ESP,8
004042F2   . 33D2       XOR EDX,EDX
004042F4   . 8B85 9CFDFFFF MOV EAX,DWORD PTR SS:[EBP-264]
004042FA   . E8 81310000   CALL DF6_00_0.00407480
004042FF   . FF8D BCFDFFFF DEC DWORD PTR SS:[EBP-244]
00404305   . 8D45 F8     LEA EAX,DWORD PTR SS:[EBP-8]
00404308   . BA 02000000   MOV EDX,2
0040430D   . E8 E6C30C00   CALL DF6_00_0.004D06F8
00404312   . FF8D BCFDFFFF DEC DWORD PTR SS:[EBP-244]
00404318   . 6A 02       PUSH 2                       ; /Arg2 = 00000002
0040431A   . 8D4D FE     LEA ECX,DWORD PTR SS:[EBP-2]         ; |
0040431D   . 51         PUSH ECX                       ; |Arg1
0040431E   . E8 D1BD0000   CALL DF6_00_0.004100F4             ; \DF6_00_0.004100F4
00404323   . 83C4 08     ADD ESP,8
00404326   . 8B85 A0FDFFFF MOV EAX,DWORD PTR SS:[EBP-260]
0040432C   . 64:A3 0000000>MOV DWORD PTR FS:[0],EAX
00404332   . E9 64300000   JMP DF6_00_0.0040739B
00404337   > 8B95 9CFDFFFF MOV EDX,DWORD PTR SS:[EBP-264]
0040433D   . 80BA 10040000>CMP BYTE PTR DS:[EDX 410],0

//===============================

简单快速的修改方法,谢谢 7 楼兄弟的提供。

用UE打开脱壳的冰点把0X000042DF的 75改成EB。
标签: