【文章标题】: 英雄无敌3简中版免CD制作
【文章作者】: wxxw
【软件名称】: 英雄无敌3死亡阴影简体中文版
【保护方式】: 无
【编写语言】: Microsoft Visual C++ 5.0
【使用工具】: Olldbg1.10
【操作平台】: XP sp3
【软件介绍】: 经典游戏
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
英雄无敌3是我喜欢的一款游戏,虽然比较老了,但偶尔还玩一下,比较不爽的是我装的版本需要光盘才能玩,不放光盘会提示不能单机,只能加入别人建立的游戏云云,于是就琢磨怎么免CD,首先用函数参考,发现有GetDriverTypeA,在所有调用它的地方下断,F9运行来到这里
005BB230 /> 55 PUSH EBP
005BB231 |. 8BEC MOV EBP,ESP
005BB233 |. 83EC 40 SUB ESP,40
005BB236 |. 53 PUSH EBX
005BB237 |. 56 PUSH ESI
005BB238 |. 57 PUSH EDI
005BB239 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
005BB23C |. 83C0 41 ADD EAX,41
005BB23F |. A2 ACEF8000 MOV BYTE PTR DS:[80EFAC],AL
005BB244 |. 68 ACEF8000 PUSH Heroes3.0080EFAC ; /RootPathName = "D:\"
005BB249 |. FF15 90FB8300 CALL DWORD PTR DS:[<&KERNEL32.GetDriveTy>; \GetDriveTypeA
005BB24F |. 33C9 XOR ECX,ECX
005BB251 |. 83F8 05 CMP EAX,5
005BB254 |. 0F94C1 SETE CL
005BB257 |. 8BC1 MOV EAX,ECX
005BB259 |. 5F POP EDI
005BB25A |. 5E POP ESI
005BB25B |. 5B POP EBX
005BB25C |. 8BE5 MOV ESP,EBP
005BB25E |. 5D POP EBP
005BB25F \. C3 RETN
005BB36E . 83C4 04 ADD ESP,4
005BB371 . 85C0 TEST EAX,EAX
005BB373 . 74 6F JE SHORT Heroes3.005BB3E4
005BB375 . 68 00800000 PUSH 8000
005BB37A . 8D85 A0FDFFFF LEA EAX,DWORD PTR SS:[EBP-260]
005BB380 . 50 PUSH EAX
005BB381 . E8 2075E4FF CALL Heroes3.004028A6
005BB386 . 83C4 04 ADD ESP,4
005BB389 . 8985 8CFDFFFF MOV DWORD PTR SS:[EBP-274],EAX
005BB38F . 8B8D 8CFDFFFF MOV ECX,DWORD PTR SS:[EBP-274]
005BB395 . 898D 88FDFFFF MOV DWORD PTR SS:[EBP-278],ECX
005BB39B . C745 FC 00000>MOV DWORD PTR SS:[EBP-4],0
005BB3A2 . 8B8D 88FDFFFF MOV ECX,DWORD PTR SS:[EBP-278]
005BB3A8 . E8 181EE5FF CALL Heroes3.0040D1C5
005BB3AD . 50 PUSH EAX ; |Arg1
005BB3AE . E8 4DCB1A00 CALL Heroes3.00767F00 ; \Heroes3.00767F00
00767F28 |. 51 PUSH ECX ; /Arg4
00767F29 |. 6A 40 PUSH 40 ; |Arg3 = 00000040
00767F2B |. 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C] ; |
00767F2E |. 52 PUSH EDX ; |Arg2
00767F2F |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; |
00767F32 |. 50 PUSH EAX ; |Arg1 = 015DBFD1 ASCII "D:heroes3\data\heroes3.vid"
00767F33 |. E8 08000000 CALL Heroes3.00767F40 ; \Heroes3.00767F40
00768205 |> \6A 00 PUSH 0 ; /hTemplateFile = NULL
00768207 |. 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28] ; |
0076820A |. 50 PUSH EAX ; |Attributes
0076820B |. 8B4D E8 MOV ECX,DWORD PTR SS:[EBP-18] ; |
0076820E |. 51 PUSH ECX ; |Mode
0076820F |. 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24] ; |
00768212 |. 52 PUSH EDX ; |pSecurity
00768213 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; |
00768216 |. 50 PUSH EAX ; |ShareMode
00768217 |. 8B4D CC MOV ECX,DWORD PTR SS:[EBP-34] ; |
0076821A |. 51 PUSH ECX ; |Access
0076821B |. 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] ; |
0076821E |. 52 PUSH EDX ; |FileName = "D:heroes3\data\heroes3.vid"
0076821F |. FF15 78FB8300 CALL DWORD PTR DS:[<&KERNEL32.CreateFile>; \CreateFileA
00768225 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00768228 |. 837D FC FF CMP DWORD PTR SS:[EBP-4],-1
0076822C |. 75 23 JNZ SHORT Heroes3.00768251
0076822E |. FF15 84FB8300 CALL DWORD PTR DS:[<&KERNEL32.GetLastErr>; [GetLastError
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)