黃易群俠傳M脫機外掛應用程式黃易神行
3066
5

[發問] 各位大大小弟想問的更詳細點可以嗎?

jack800417 發表於 2010-12-13 11:34:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |
各位大大
最近看了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);    這是怪物等級

==問題很多,大大可以慢慢回答,小弟想要徹底了解,而不是照做
如有任何違規請大大告知
怪物的這些偏移要如何抓取呢?
收藏收藏1 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


RAINTCK 當前離線
UID
1569638
熱心
259 值
嘉獎
0 次
違規
0 次
在線時間
321 小時
經驗
158 點
積分
4295
精華
0
最後登錄
2018-10-27
閱讀權限
50
註冊時間
2010-10-21
論壇幣
3504 幣
聯合幣
47 枚
幸運鑽
6 顆
招待卷
2000 點
查看詳細資料
Rank: 6Rank: 6
RAINTCK 2010-12-13 16:47:40
ta 是週圍怪物基址
tem1 是怪物最大數量
tem2 是怪物列表首基址
把動態基址放入mid
+$20人物基址放入mid
+$a20(現在是b0c)選中的怪物再放入mid
以eax為基底稱為@ftt 是怪物偏移值
ftt+$4 是選中怪物的基址
應該是這樣YCT23B用我自己看得懂的注解
有錯誤請各位先進指正
回覆

使用道具 舉報

jack800417 當前離線
UID
1076539
熱心
155 值
嘉獎
0 次
違規
0 次
在線時間
79 小時
經驗
137 點
積分
1864
精華
0
最後登錄
2019-1-23
閱讀權限
40
註冊時間
2008-11-23
論壇幣
1448 幣
聯合幣
28 枚
幸運鑽
6 顆
招待卷
0 點
Yahoo! 查看詳細資料
Rank: 5Rank: 5Rank: 5
jack800417 2010-12-14 10:20:22
YCT55B謝謝大大的解釋,雖然只有一些,小弟盡量理解
這樣的話
程式執行程序為

//********************讀取怪物資訊****************
1.抓取遊戲基址------ReadProcessMemory(ProcessID, Pointer(W2i_Base), @ftt, 4, tt);
2.抓取環境基址------ReadProcessMemory(ProcessID, Pointer(ftt+$08), @ftt, 4, tt);
3.抓取怪物基址------ReadProcessMemory(ProcessID, Pointer(ftt+$24), @ta, 4, tt);
4.抓取範圍怪物之最大數量---ReadProcessMemory(ProcessID, Pointer(ta+$24), @tmp1, 4, tt);
5.抓取範圍怪物列表首基址---ReadProcessMemory(ProcessID, Pointer(ta+$24), @tmp1, 4, tt); (這個步驟是把怪物的距離從近到遠排列出來嗎?然後人物就會主動攻擊首位怪物也就是最近怪物嗎?)
6.動態基址放入mid---------ReadProcessMemory(ProcessID, Pointer(W2i_Base), @MID, 4, tt);
(在這篇教學中http://bbs.wgun.net/viewthread.p ... mp%3Bascdesc%3DDESC動態=人物+環境?
7.人物基址放入mid--------ReadProcessMemory(ProcessID, Pointer(MID+$20), @MID, 4, tt);
8.選中的怪物放入mid------ReadProcessMemory(ProcessID, Pointer(MID+$b0c), @MID, 4, tt);
(所以mid是開始執行動作1~5的指令??
9.宣稱eax是怪物之最大數量+(插入MID的怪物列表首基址)*4----eax := tmp2 + ((MID Mod tmp1)) * 4 ;
(ㄜ....既然前面都已經在插入MID了,為捨麼這裡還要特別宣稱,還是因為這個宣稱是一種計算方式,無法跟6~8步驟一樣放入MID?)
10.以eax為基底,稱為@ftt-----ReadProcessMemory(ProcessID, Pointer(eax), @ftt, 4, tt);
11.選中怪物------------------ReadProcessMemory(ProcessID, Pointer(ftt+$4), @eax, 4, tt);
(步驟4有排列了,這裡是開始抓取首位怪物基址?)
12.讀取或抓取怪物血量--------ReadProcessMemory(ProcessID, Pointer(eax+$12c), @MONHP, 4, tt);
(這部分是顯示出來還是都是隱藏在程式底下計算?)
13.讀取或抓取怪物最大血量----ReadProcessMemory(ProcessID, Pointer(eax+$15c), @MONMHP, 4, tt);
(應該是最大血量,看到HP前面有個M,可能是MAXHP的縮寫)
14.讀取或抓取怪物等級--------ReadProcessMemory(ProcessID, Pointer(eax+$124), @MONLV, 4, tt);
15.label7.Caption := inttostr(MONLV) ;
(這段不清楚捏,應該是顯示等級!?)
16.label13.Caption := inttostr(MONHP)+'/'+inttostr(MONMHP);
(顯示血量/最大血量(百分比%??))
17.結束

這樣對嗎?YCT23B
超複雜的
不過分析這些小地覺得很好玩YCT58B
各位大大若發覺有錯請多多提醒嚕YCT65B
回覆

使用道具 舉報

RAINTCK 當前離線
UID
1569638
熱心
259 值
嘉獎
0 次
違規
0 次
在線時間
321 小時
經驗
158 點
積分
4295
精華
0
最後登錄
2018-10-27
閱讀權限
50
註冊時間
2010-10-21
論壇幣
3504 幣
聯合幣
47 枚
幸運鑽
6 顆
招待卷
2000 點
查看詳細資料
Rank: 6Rank: 6
RAINTCK 2010-12-14 19:07:18
TMP2是+$18
是怪物列表的開始基址不是排列
動態=人物+環境不是指人物+環境就是動態
是動態加偏移控制人物及環境基址
+$20就是把指標指向人物基指在+B0C指向人物選中的怪或玩家不是執行1~52個指標不同指向不同處
EAX是把指標指向選中怪的偏移指針
再+$4就是指向你選中怪的基址(等於你人物基址)
找到了你選中的怪基址後就能讀出選中的怪或玩家的基本資料
我也是半桶水的!YCT17B希望沒解釋錯!!現在這區人超少
回覆

使用道具 舉報

lenzlenz 當前離線
UID
958067
熱心
38 值
嘉獎
0 次
違規
0 次
在線時間
4 小時
經驗
22 點
積分
22
精華
0
最後登錄
2014-2-1
閱讀權限
20
註冊時間
2008-7-29
論壇幣
22 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
5
lenzlenz 2013-8-10 23:14:36
我也想請問一個問題
W2i_Base 是怎麼得到的,還有人物基址的偏移是固定的嗎?
回覆

使用道具 舉報

秋之風星落 當前離線
UID
2037141
熱心
32 值
嘉獎
0 次
違規
0 次
在線時間
1 小時
經驗
22 點
積分
22
精華
0
最後登錄
2013-8-18
閱讀權限
20
註冊時間
2013-8-12
論壇幣
22 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
6
秋之風星落 2013-8-13 14:13:32
感謝大大分享~~~~~~~~~~~~~~~~~~~~~~
嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂嶂
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊


手機版 | Archiver | 外掛聯合國

GMT+8, 2024-11-25 02:11 , Processed in 0.046750 second(s), 17 queries , Memcache On.

版權說明:
  本站不會製作、經銷、代理外掛程式。僅免費提供外掛程式下載前之掃毒及掃木馬等安全檢測驗證,協助會員遠離盜號危險程式。本站所有資料均來自網際網路收集整理,說明文字暨下載連結轉載自原程 式開發站。站上出現之公司名稱、遊戲名稱、程式等,商標及著作權,均歸各公司及程式原創所有,本站程式所有權歸外掛聯合國所有。本程式所有權歸外掛聯合國所有.......

回頂部
第二步?
第三步?