陌上花开 发表于 2026-3-2 09:22

fafa 发表于 2026-2-27 01:34
你也可以写个补丁程序,遍历出你指定人形怪的名字后,用写内存数据,修改类型为其他任意怪的类型即可, ...

这个不会用呀,
我把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填充也都 不行,好烦了

陌上花开 发表于 2026-4-9 16:26

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的检查

fafa 发表于 2026-4-10 02:03

{:5_116:}{:5_116:}{:5_116:}{:5_116:}{:5_116:}{:5_116:}
页: 1 [2]
查看完整版本: 传世游戏FZ修改求助