- UID
- 781557
- 主题
- 12
- 阅读权限
- 60
- 帖子
- 363
- 精华
- 5
- 积分
- 2339
- 金钱
- 5267
- 荣誉
- 114
- 人气
- 173
- 在线时间
- 0 小时
- 评议
- 0
- 帖子
- 363
- 精华
- 5
- 积分
- 2339
- 金钱
- 5267
- 荣誉
- 114
- 人气
- 173
- 评议
- 0
|
31楼的GM存档里的代码意义如下
004531C5 - e8 36 d2 fa ff - call 00400400
代表调用下面函数, 所以只改这里而不在目标地址写函数则发生错误.
我选择00400400开始的未使用内存, 请看看从这里到00400487之间是否有非0数字.
如果有被使用到, 那么覆盖使用恐怕也必定出错.
00400400 - 31 db - xor ebx,ebx
00400402 - e8 59 95 1c 00 - call 005c9960
00400407 - 8b 84 9e cc 00 00 00 - mov eax,[esi+ebx*4+000000cc]
0040040E - 83 fa 5a - cmp edx,5a
00400411 - 7c 0f - jnge 00400422
00400413 - 83 f8 04 - cmp eax,04
00400416 - 74 01 - je 00400419
00400418 - 40 - inc eax
00400419 - 89 84 9c e8 00 00 00 - mov [esp+ebx*4+000000e8],eax
00400420 - eb 1b - jmp 0040043d
00400422 - 83 fa 28 - cmp edx,28
00400425 - 7c 09 - jnge 00400430
00400427 - 89 84 9c e8 00 00 00 - mov [esp+ebx*4+000000e8],eax
0040042E - eb 0d - jmp 0040043d
00400430 - 83 f8 00 - cmp eax,00
00400433 - 74 01 - je 00400436
00400435 - 48 - dec eax
00400436 - 89 84 9c e8 00 00 00 - mov [esp+ebx*4+000000e8],eax
0040043D - 43 - inc ebx
0040043E - 83 fb 08 - cmp ebx,08
00400441 - 7e bf - jle 00400402
00400443 - 8b 86 90 00 00 00 - mov eax,[esi+00000090]
00400449 - 89 84 24 d0 00 00 00 - mov [esp+000000d0],eax
00400450 - 8b 86 94 00 00 00 - mov eax,[esi+00000094]
00400456 - 89 84 24 d4 00 00 00 - mov [esp+000000d4],eax
0040045D - 8b 86 98 00 00 00 - mov eax,[esi+00000098]
00400463 - 89 84 24 d8 00 00 00 - mov [esp+000000d8],eax
0040046A - 8b 86 9c 00 00 00 - mov eax,[esi+0000009c]
00400470 - 89 84 24 dc 00 00 00 - mov [esp+000000dc],eax
00400477 - 8b 86 a0 00 00 00 - mov eax,[esi+000000a0]
0040047D - 89 84 24 e0 00 00 00 - mov [esp+000000e0],eax
00400484 - c2 08 00 - ret 0008
00400487 - cc - int 3
请高人看看有什么会造成错误的, 在下使用是没有跳出游戏. |
|