你也可以写个补丁程序,遍历出你指定人形怪的名字后,用写内存数据,修改类型为其他任意怪的类型即可, ...
这个不会用呀,
我把FZ的DAT文件加载到OD中了,但是没办法打开游戏调试,打开游戏用中文搜索就崩溃了。找到了下面的一段开始挂机到挂机结束的代码:
02482408|.BA E0244802 mov edx,wooool.024824E0 ;开始挂机
0248240D|.8BC3 mov eax,ebx
0248240F|.E8 ECF9FFFF call wooool.02481E00
02482414|.B2 01 mov dl,0x1
02482416|.8BC3 mov eax,ebx
02482418|.E8 07FCFFFF call wooool.02482024
0248241D|>33C0 xor eax,eax
0248241F|.5A pop edx ;Loaddll.00401477
02482420|.59 pop ecx ;Loaddll.00401477
02482421|.59 pop ecx ;Loaddll.00401477
02482422|.64:8910 mov dword ptr fs:,edx
02482425|.68 3A244802 push wooool.0248243A
0248242A|>8D45 FC lea eax,
0248242D|.E8 0A2BE9FF call wooool.02314F3C
02482432\.C3 retn
02482433 .^ E9 D423E9FF jmp wooool.0231480C
02482438 .^ EB F0 jmp short wooool.0248242A
0248243A .5B pop ebx ;Loaddll.00401477
0248243B .8BE5 mov esp,ebp
0248243D .5D pop ebp ;Loaddll.00401477
0248243E .C3 retn
0248243F 00 db 00
02482440 .ff db ff
02482441 .ff db ff
02482442 .ff db ff
02482443 .FF2400 jmp dword ptr ds:
02482446 00 db 00
02482447 00 db 00
02482448 CC int3
02482449 E1 db E1
0248244A CA db CA
0248244B BE db BE
0248244C A3 db A3
0248244D BA db BA
0248244E D0 db D0
0248244F E8 db E8
02482450 D4 db D4
02482451 DA db DA
02482452 A1 db A1
02482453 B0 db B0
02482454 B9 db B9
02482455 D2 db D2
02482456 BB db BB
02482457 FA db FA
02482458 A1 db A1
02482459 B1 db B1
0248245A D2 db D2
0248245B B3 db B3
0248245C .C3 retn
0248245D E6 db E6
0248245E D6 db D6
0248245F D0 db D0
02482460 C9 db C9
02482461 E8 db E8
02482462 D6 db D6
02482463 .C3 retn
02482464 .B9 D2BBFAB5 mov ecx,0xB5FABBD2
02482469 .D8CD fmul st,st(5)
0248246B .BC 00000000 mov esp,0x0
02482470 .ff db ff
02482471 .ff db ff
02482472 .ff db ff
02482473 .FF2400 jmp dword ptr ds:
02482476 00 db 00
02482477 00 db 00
02482478 CC int3
02482479 E1 db E1
0248247A CA db CA
0248247B BE db BE
0248247C A3 db A3
0248247D BA db BA
0248247E D0 db D0
0248247F E8 db E8
02482480 D4 db D4
02482481 DA db DA
02482482 A1 db A1
02482483 B0 db B0
02482484 B9 db B9
02482485 D2 db D2
02482486 BB db BB
02482487 FA db FA
02482488 A1 db A1
02482489 B1 db B1
0248248A D2 db D2
0248248B B3 db B3
0248248C .C3 retn
0248248D E6 db E6
0248248E D6 db D6
0248248F D0 db D0
02482490 C9 db C9
02482491 E8 db E8
02482492 D6 db D6
02482493 .C3 retn
02482494 .B2 B9 mov dl,0xB9
02482496 .B8 F8B5D8CD mov eax,0xCDD8B5F8
0248249B .BC 00000000 mov esp,0x0
024824A0 .ff db ff
024824A1 .ff db ff
024824A2 .ff db ff
024824A3 .ff2c00 jmp far fword ptr ds:
024824A6 00 db 00
024824A7 00 db 00
024824A8 D7 db D7
024824A9 B0 db B0
024824AA B1 db B1
024824AB B8 db B8
024824AC B1 db B1
024824AD A3 db A3
024824AE BB db BB
024824AF A4 db A4
024824B0 A3 db A3
024824B1 AC db AC
024824B2 BC db BC
024824B3 EC db EC
024824B4 B2 db B2
024824B5 E2 db E2
024824B6 B5 db B5
024824B7 BD db BD
024824B8 CE db CE
024824B9 B4 db B4
024824BA B4 db B4
024824BB A9 db A9
024824BC B4 db B4
024824BD F7 db F7
024824BE D7 db D7
024824BF B0 db B0
024824C0 B1 db B1
024824C1 B8 db B8
024824C2 A3 db A3
024824C3 .A8 D6 test al,0xD6
024824C5 .D8D0 fcom st
024824C7 .C2 B4A9 retn 0xA9B4
024824CA C9 db C9
024824CB CF db CF
024824CC 20 db 20 ;CHAR ' '
024824CD 2D db 2D ;CHAR '-'
024824CE 3E db 3E ;CHAR '>'
024824CF 20 db 20 ;CHAR ' '
024824D0 25 db 25 ;CHAR '%'
024824D1 73 db 73 ;CHAR 's'
024824D2 A3 db A3
024824D3 A9 db A9
024824D4 00 db 00
024824D5 00 db 00
024824D6 00 db 00
024824D7 00 db 00
024824D8 FF db FF
024824D9 FF db FF
024824DA FF db FF
024824DB FF db FF
024824DC 08 db 08
024824DD 00 db 00
024824DE 00 db 00
024824DF 00 db 00
024824E0 BF db BF
024824E1 AA db AA
024824E2 CA db CA
024824E3 BC db BC
024824E4 B9 db B9
024824E5 D2 db D2
024824E6 BB db BB
024824E7 FA db FA
024824E8 00 db 00
024824E9 00 db 00
024824EA 00 db 00
024824EB 00 db 00
024824EC/$53 push ebx
024824ED|.8BD8 mov ebx,eax
024824EF|.B2 01 mov dl,0x1
024824F1|.8BC3 mov eax,ebx
024824F3|.E8 10FDFFFF call wooool.02482208
024824F8|.A1 3CD54902 mov eax,dword ptr ds:
024824FD|.8B00 mov eax,dword ptr ds:
024824FF|.C680 C8000000>mov byte ptr ds:,0x0
02482506|.A1 3CD54902 mov eax,dword ptr ds:
0248250B|.8B00 mov eax,dword ptr ds:
0248250D|.05 F0010000 add eax,0x1F0
02482512|.33C9 xor ecx,ecx ;wow64cpu.775B1F83
02482514|.BA 10000000 mov edx,0x10
02482519|.E8 1212E9FF call wooool.02313730
0248251E|.33C9 xor ecx,ecx ;wow64cpu.775B1F83
02482520|.BA 38254802 mov edx,wooool.02482538 ;停止挂机
更改了好几个跳转,用NOP填充也都 不行,好烦了 fafa 发表于 2026-2-27 01:34
你也可以写个补丁程序,遍历出你指定人形怪的名字后,用写内存数据,修改类型为其他任意怪的类型即可, ...
我搞定了!!在B站看了很多OD的视频,又看了IDA Pro的使用方法,IDA Pro做为静态分析太强大了,把汇编用码用流程图都展示出来,那些不打怪的跳转一下子就看出来,然后就OD动态调试,修改的很完美了,现在不用手动操作,可以一直挂机。主要改了以下的地方:
地址 原指令(机器码) 修改后(机器码) 说明
0216CC95 75 13 (jnz short 0216CCA5) EB 0E (jmp short 0216CCA5) 强制跳转到后续检查,不执行跳过逻辑
0216CCAE 0F 84 40 01 00 00 (je 0216CDF4) 90 90 90 90 90 90 (6个NOP) 忽略 call 02177F78 的测试结果
0216CCBD 0F 85 31 01 00 00 (jnz 0216CDF4) 90 90 90 90 90 90 忽略 call 02177F68 的测试结果
0216CCDA 0F 84 14 01 00 00 (je 0216CDF4) 90 90 90 90 90 90 忽略怪物类型比较(0x97)
0216CCF7 0F 84 F7 00 00 00 (je 0216CDF4) 90 90 90 90 90 90 忽略怪物类型比较(0xFC)
0216CD11 0F 84 DD 00 00 00 (je 0216CDF4) 90 90 90 90 90 90 忽略 call 0216CB3C 名称检查
0216CD2B 0F 85 C3 00 00 00 (jnz 0216CDF4) 90 90 90 90 90 90 忽略 call 0216A55C 检查
0216CD51 0F 84 9D 00 00 00 (je 0216CDF4) 90 90 90 90 90 90 忽略怪物数据偏移+4的检查
0216CD5E 0F 84 90 00 00 00 (je 0216CDF4) 90 90 90 90 90 90 忽略怪物数据偏移+7的检查
0216CD6B 0F 85 83 00 00 00 (jnz 0216CDF4) 90 90 90 90 90 90 忽略怪物数据偏移+8的检查 {:5_116:}{:5_116:}{:5_116:}{:5_116:}{:5_116:}{:5_116:}
页:
1
[2]