各位大大
最近看了E大的教學影片,也試著自己做了卡鍵程式
並參考了一下之前E大鎖分享的一篇 丁丁小掛delphi原始碼
http://bbs.wgun.net/thread-188762-1-1.html
想請問各個指令碼所代表的涵意是捨麼作用~
問題很多,不好意思麻煩各位YCT66B
//********************讀取怪物資訊****************
ReadProcessMemory(ProcessID, Pointer(W2i_Base), @ftt, 4, tt);
ReadProcessMemory(ProcessID, Pointer(ftt+$08), @ftt, 4, tt);
ReadProcessMemory(ProcessID, Pointer(ftt+$24), @ta, 4, tt);
ReadProcessMemory(ProcessID, Pointer(ta+$24), @tmp1, 4, tt);
ReadProcessMemory(ProcessID, Pointer(ta+$18), @tmp2, 4, tt);
ReadProcessMemory(ProcessID, Pointer(W2i_Base), @MID, 4, tt);
ReadProcessMemory(ProcessID, Pointer(MID+$20), @MID, 4, tt);
ReadProcessMemory(ProcessID, Pointer(MID+$A20), @MID, 4, tt);
eax := tmp2 + ((MID Mod tmp1)) * 4 ;
ReadProcessMemory(ProcessID, Pointer(eax), @ftt, 4, tt);
ReadProcessMemory(ProcessID, Pointer(ftt+$4), @eax, 4, tt);
ReadProcessMemory(ProcessID, Pointer(eax+$12c), @MONHP, 4, tt);
ReadProcessMemory(ProcessID, Pointer(eax+$15c), @MONMHP, 4, tt);
ReadProcessMemory(ProcessID, Pointer(eax+$124), @MONLV, 4, tt);
label7.Caption := inttostr(MONLV) ;
label13.Caption := inttostr(MONHP)+'/'+inttostr(MONMHP);
end;
讀取怪物資訊,它怎麼那麼多偏移:
抓取遊戲基址(W2i_Base), 為ftt, 4, tt,它的4,tt是捨麼意思??
以抓取到的ftt加上偏移$08定為ftt,這是類似動態基址人物+1C的偏移嗎?(兩個指令名稱都是ftt不會發生錯誤嗎?)
加$24定為ta,ta是怪物的血量嗎?
以下以人物+偏移乙次類推嗎?
@ftt=一級基址
@ftt=怪物基址
@ta=是捨麼?名子嗎?
@tmp1=這個呢?
@tmp2=
@MID這個怎麼會有3個?第一個當基礎是捨麼的基址,第2個+$20偏移變成捨麼?第3個+$A20偏移又變成捨麼?
eax := tmp2 + ((MID Mod tmp1)) * 4 ; --->tmp2加上((MID Mod tmp1))承上4
=="怎麼下面又一大串的指令,讀取怪物資訊好像比人物還複雜......
以eax為基底稱為@ftt,如果上面所說的是怪物基址那這個又是捨麼?
ftt+$4這是捨麼?
(eax+$12c), @MONHP, 4, tt); 這是怪物血量
(eax+$15c), @MONMHP, 4, tt); 這是怪物....最大血量!?看到HP前面有個M
(eax+$124), @MONLV, 4, tt); 這是怪物等級
==問題很多,大大可以慢慢回答,小弟想要徹底了解,而不是照做
如有任何違規請大大告知
怪物的這些偏移要如何抓取呢? |