?? 手冊.txt
字號:
[tc]魔獸3 1.21內存修改器
程序員手冊
[tc]天馳
2007.3.17
一、內存空洞
1、Read+Write
00461000
2、Read(execute代用)
0044A800
二、修改器內存分配(全部使用魔獸資源)
1、經驗值 [[00461000]+8c] int
(1)原來的代碼
6F1B2EDB:
mov eax,[eax+0000008c] 8b 80 8c 00 00 00
(2)修改后
6F1B2EDB:
jmp 0044A800 e9 20 79 29 91
nop 90
0044A800:
mov [00461000],eax 89 05 00 10 46 00
mov eax,[eax+0000008c] 8b 80 8c 00 00 00
jmp 6F1B2EE1 e9 d0 86 d6 6e
nop 90
2、力量 [[00461004]+94] int
(1)原來的代碼
6F13CDFE:
mov edi,[esi+00000094] 8b be 94 00 00 00
(2)修改后
6F13CDFE:
jmp 0044A820 e9 1d da 30 91
nop 90
0044A820:
mov [00461004],esi 89 35 04 10 46 00
mov edi,[esi+00000094] 8b be 94 00 00 00
jmp 6F13CE04 e9 d3 25 cf 6e
nop 90
3、敏捷 [[00461008]+a8] int
(1)原來的代碼
6F13CEEB:
mov edi,[esi+000000a8] 8b be a8 00 00 00
(2)修改后
6F13CEEB:
jmp 0044A840 e9 50 d9 30 91
nop 90
0044A840:
mov [00461008],esi 89 35 08 10 46 00
mov edi,[esi+000000a8] 8b be a8 00 00 00
jmp 6F13CEF1 e9 A0 26 CF 6E
nop 90
4、智力 [[00461014]+78] int
(1)原來的代碼
6F088E78:
mov eax,[edx+78] 8b 42 78
pop esi 5e
pop ebx 5b
(2)修改后
6F088E78:
jmp 00449E20 e9 a3 0f 3c 91
00449E20:
cmp [00461014],edx 39 15 14 10 46 00
ja 00449E2E 77 06 <if edx small goto L1>
mov [00461014],edx 89 15 14 10 46 00 <if edx bigger->save>
<L1:>
mov eax,[edx+78] 8b 42 78
pop esi 5e
pop ebx 5b
jmp 6F088E7D e9 45 f0 c3 6e
5、移動速度 [[0046100C]+78] float
(1)原來的代碼
6F55FA2F:
mov ecx,[esi+78] 8b 4e 78
mov edx,[ebp-1c] 8b 55 e4
(2)修改后
6F55FA2F:
jmp 0044A860 e9 2C AE EE 90
nop 90
0044A860:
mov [0046100C],esi 89 35 0c 10 46 00
mov ecx,[esi+78] 8b 4e 78
mov edx,[ebp-1c] 8b 55 e4
jmp 6F55FA35 e9 C4 51 11 6F
nop 90
6、攻擊頻率 [[00461010]+1b0] float
(1)原來的代碼
6F55790D:
mov eax,[esi+000001b0] 8b 86 b0 01 00 00
(2)修改后
6F55790D:
jmp 0044A880 e9 6E 2F EF 90
nop 90
0044A880:
mov [00461010],esi 89 35 10 10 46 00
mov eax,[esi+000001b0] 8b 86 b0 01 00 00
jmp 6F557913 e9 82 D0 10 6F
nop 90
7-10、攻擊相關:int
以攻擊頻率為參考的地址 0 1b0
攻擊 - 基礎 -110 A0
攻擊 - 倍乘 -11C 94
攻擊 - 骰子 -128 88
攻擊 - 種類 -BC F4
11、防御 [[00461018]+e0] float
(1)原來的代碼
6F13BD53:
mov ecx,[esi+000000e0] 8b 8e e0 00 00 00
(2)修改后
6F13BD53:
jmp 0044A8A0 e9 48 eb 30 91
nop 90
0044A8A0:
mov [00461018],esi 89 35 18 10 46 00
mov ecx,[esi+000000e0] 8b 8e e0 00 00 00
jmp 6f13bd59 e9 a8 14 cf 6e
nop 90
12、防御 - 種類 int
以防御為參考的地址 0 e0
防御 - 種類 +4 +e4
AA0、1P金錢 [[0046101C]](取下上16位,下16位見下一款) int x10
(1)原來的代碼
6F088E78:
mov eax,[edx+78] 8b 42 78
pop esi 5e
pop ebx 5b
(2)修改后
6F088E78:
jmp 0044A8c0 e9 43 1a 3c 91
0044A8c0:
mov [0046101C],edx 89 15 1c 10 46 00
and [0046101C],ffff0000 81 25 1c 10 46 00 00 00 ff ff
mov eax,[edx+78] 8b 42 78
pop esi 5e
pop ebx 5b
jmp 6f088e7d e9 a3 e5 c3 6e
AA1、金錢總列表:[取下16位,上16位見上一款]
(1)對每個玩家:
金錢 0 int x10
木頭 + 80 int x10
最大人口 +180 int
當前人口 +200 int
(2)玩家金錢位置(下16位)
1P 0190
2P 1410
3P 26a0
4P 3920
5P 4bb0
6P 5e30
7P 70c0
8P 8350
9P 95d0
10P a860
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -