1. 程式人生 > >易語言技術-超級HOOK 技術寫輔助再也無需分析遊戲基址

易語言技術-超級HOOK 技術寫輔助再也無需分析遊戲基址

在我們讀取遊戲中各種資料時候,都是要找遊戲的基址和相關偏移量來讀取資料的,

而有的遊戲找資料的基址是會比較繁瑣和難的,那怎麼辦呢?新手對複雜的遊戲的資料結構不知道如何分析基址,

就讀取不到想要的資料,就無法制作外掛程式相關的功能,難道就沒辦法了嗎?

當然不是,GAME-EC 模組裡的 類_超級HOOK 可以完成這點,不需要找到遊戲資料的基址和偏移量,

超級HOOK是獨立團在2011-12-12 03:00 時間開發出來的功能,是中國網路上易語言最早的創造出這功能的,

凡是時間 2011-12-12 03:00 之後其他網站出的超級HOOK都是山寨的不穩定。

這個功能可以做很多事情,也可以擷取遊戲各種資料資訊,

超級HOOK的原理是:
在HOOK指定地址,攔截經過該地址的所有暫存器資料資訊,
然後傳遞一份給我們自己的程式,就好比安裝了個竊聽器一樣,對方經過這個地方時候,所有的暫存器資訊資料我們都會被監聽到

下面就舉個例子演示下超級HOOK的功能使用
先找到遊戲裡指定資料的正確記憶體地址,這裡用 亮劍 遊戲示範,
其他遊戲也是一樣的思路,只是資料地址找法不一樣而已,
如何分析遊戲各種資料的記憶體地址,那就需要去學習我們的系列視訊輔助課程了!這裡只是教大家使用模組裡的各功能
首選用CE搜尋遊戲座標值,找到關聯的記憶體地址即可
在這裡插入圖片描述
找到資料的記憶體地址後,我們加入到下面地址列表去,然後滑鼠右鍵檢視第一條地址的程式碼:
在這裡插入圖片描述


進入遊戲走動一下,出現了 mov 指令資料傳送的程式碼即可,然後選擇一條 mov 指令的彙編程式碼 (最好是有+偏移量的),
如圖:
在這裡插入圖片描述
我們選擇一條mov的程式碼
比如: mov 暫存器,[暫存器+偏移量] 這樣的程式碼最好
當然如果實在沒有偏移量的話,也可以,比如上例中的
009D210C - 89 47 14 - mov [edi+14],eax <<
形式是 mov [暫存器+偏移量],暫存器 或 mov 暫存器,暫存器 的都可以,我們只需根據HOOK的彙編程式碼的形式來寫程式碼即可
那麼有偏移的mov指令程式碼就優先選擇,這裡我們就選擇:
009D7A72 - 8B 46 14 - mov eax,[esi+14] << 這條程式碼HOOK
但是這條程式碼只有 3個位元組( 8B 46 14 ),我們的超級HOOK必須HOOK 至少5個位元組的程式碼,
否則會HOOK失敗奔潰!

像我們示範的遊戲這種時候需要注意了,如果HOOK的地址的彙編程式碼不夠5個位元組,我們就可以找下它上面或下面的一條程式碼或兩條程式碼,
湊夠5個位元組或5個位元組以上即可,
比如我們現在HOOK的地址 009D7A72 這句彙編程式碼不夠5個位元組,我們就可以把它下一行的程式碼也HOOK進來
009D7A6A - 84 C0 - test al,al
009D7A6C - 0F84 73010000 - je cHelpZipFile::GetKBpS+5ACA05
009D7A72 - 8B 46 14 - mov eax,[esi+14] <<
009D7A75 - 8B 4E 18 - mov ecx,[esi+18]
009D7A78 - 57 - push edi

HOOK 009D7A72 的程式碼3個位元組 + 下面的一行程式碼 3個位元組 就是:8B 46 14 8B 4E 18 就有6個位元組了,滿足HOOK條件
那麼總結這個遊戲的X座標資料HOOK資訊是:
HOOK的地址:009D7A72
HOOK的長度:6
HOOK的起始程式碼:mov eax,[esi+14]
下面我們就來寫超級HOOK程式碼 來擷取X資料顯示到我們的小外掛裡面:
在這裡插入圖片描述
在這裡插入圖片描述
執行後,效果:
在這裡插入圖片描述
執行後,成功攔截到了遊戲的指定資料,然後讀取顯示在我們的外掛程式裡面,
這樣就不需要去辛苦分析遊戲的基址和偏移量來讀取遊戲的資料資訊了,
提醒:我們做外掛程式,思維別太死板,只要我們能讀取到遊戲的資料資訊,不管用什麼方式去讀取到的資料,能用就行!
因為我們要的是資料資訊來執行操作遊戲的相關,

當然有的學員可能會說,超級HOOK 擷取到的遊戲資料資訊,
換臺電腦後是不是也可以正確讀取資料, 我在這裡告訴大家:這是當然可以的,依然可以讀取到哦

超級HOOK的資料擷取讀取 與 通過資料的 基址 + 偏移量 讀取來的資料一樣穩定,
編譯後,換電腦一樣可以讀取到資料,因為它擷取的不是動態記憶體地址裡面的資料,而是擷取遊戲程序的彙編程式碼的資料資訊!

另外超級HOOK,還可以對指定程序你的API函式HOOK噢,來獲取指定程序API執行的資訊,達到監視的效果!

原始碼下載:http://bbs.dult.cn/thread-10417-1-1.html