反三國志我方無敵加敵方一碰即死程式碼
媽的安個寬頻居然還要等一週才能給安,上不了網只好在家裡玩RPG,這兩天玩反三國志,戰鬥真沒意思一場要半天才能結束,一怒之下修改成無敵模式了!~^_^
先用金山遊俠搞定HP地址,存放在728450開始的一段記憶體中(包括所有人物的...)然後利用bpm找到減血的程式碼,因為很簡單所以不再羅嗦...程式碼就在下面了...
0041FEEF |. 56 PUSH ESI
0041FEF0 |. 03D1 ADD EDX,ECX //原來的血減去應掉的血
0041FEF2 |. 8990 50847200 MOV DWORD PTR DS:[EAX+728450],EDX //儲存HP
0041FEF8 |. 8BF2 MOV ESI,EDX
因為這是個公用減血模組,敵方我方都用這塊程式碼,遊戲傻啊!還得我們自己判斷,靠!唉...先找個地方放自己程式碼吧...
我找了一塊從406891開始的,裡面全是03,挺怪,不過反正沒見哪裡用到,將就一下先...^_*
加個跳板跳到我的程式碼:
0041FEEF .^E9 9D69FEFF JMP SANGUO.00406891 //這裡原來是負責處理減血的語句,現在我們自己來處理:)
0041FEF4 90 NOP
0041FEF5 90 NOP
0041FEF6 90 NOP
0041FEF7 90 NOP
0041FEF8 > 8BF2 MOV ESI,EDX
處理的程式碼:
00406891 > 56 PUSH ESI
00406892 . 50 PUSH EAX
00406893 . 52 PUSH EDX
00406894 . 8B15 F0FCB600 MOV EDX,DWORD PTR DS:[B6FCF0] //B6FCF0裡面存放的是我方人員數目,遊戲利用這個數來對我方和敵方排序,
0040689A . 69D2 E40A0000 IMUL EDX,EDX,0AE4 //我們利用這一點來確保在自己人沒有不受傷害
004068A0 . 05 E40A0000 ADD EAX,0AE4 //每隔AE4個位元組是一個新的人物的HP...
004068A5 . 3BC2 CMP EAX,EDX //判斷是否是自己人^_*
004068A7 . 5A POP EDX
004068A8 . 58 POP EAX
004068A9 . 77 0D JA SHORT SANGUO.004068B8 //如果大於說明是敵軍
004068AB . 33C9 XOR ECX,ECX //ECX是應掉的血
004068AD . 8990 50847200 MOV DWORD PTR DS:[EAX+728450],EDX //這裡是我方HP所在,將傷害減為0!
004068B3 . E9 40960100 JMP SANGUO.0041FEF8 //控制權交還給遊戲
004068B8 > 33D2 XOR EDX,EDX //敵方的HP減為0!!!嘿嘿,夠狠吧,我8級的時候去砍青龍賺了N多經驗哦!
004068BA . 8990 50847200 MOV DWORD PTR DS:[EAX+728450],EDX //存入敵方HP所在地
004068C0 . E9 33960100 JMP SANGUO.0041FEF8
004068C5 90 NOP
004068C6 90 NOP
004068C7 90 NOP
004068C8 90 NOP
中間用到的B6FCF0這個地址也很簡單可以得到,因為每次戰鬥的時候遊戲負責分配給每個怪物HP存放空間,並且這個空間還要照顧到我方人員的數目(從我方最後一名人員開始存放)...
而我們知道每個人物的HP存放特點(每AE4位元組就是一個了),所以我在第一個怪物應用到的地址下個寫記憶體斷點,然後隨機遇敵一次,然後就能找到遊戲排序存放HP的地方了...
我提供一下具體地址:
0041E82D |REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] //WE BREAK HERE!!! LOOP ABOVE!
上面的程式碼:
0041E7B0 MOV EAX,DWORD PTR DS:[71F838]
0041E7B5 MOV EDI,DWORD PTR DS:[B6FCF0] //這裡存放我方人員數目
0041E7BB MOV EDX,DWORD PTR SS:[ESP+20]
...
0041E82D |REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] //WE BREAK HERE!!! LOOP ABOVE!
0041E82F |MOV DWORD PTR DS:[EBX+9E0],EAX
其它物品之類的統統可以利用遊俠搞定我就不廢話了...