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

[分享] 自動搜索特徵碼來定位位址的DLL

呆信 發表於 2009-3-29 14:13:39 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |
自動搜索特徵碼來定位位址的DLL


下面是XP下蜘蛛紙牌的範例,只是作一個功能演示,並沒有其他作用

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function ScanTZ Lib "mem.dll" (ByVal hProcess As Long, ByVal s As String) As Long
Private Const PROCESS_ALL_ACCESS = &H1F0FFF

Dim hwnd As Long, pid As Long, hProc As Long

Sub Main()
hwnd = FindWindow(vbNullString, "蜘蛛")
GetWindowThreadProcessId hwnd, pid
hProc = OpenProcess(PROCESS_ALL_ACCESS, False, pid)

MsgBox Hex(ScanTZ(hProc, "1C210300")) '查找特徵碼

CloseHandle (hProc)
End Sub

得到了這個位址就很方便了,遊戲記憶體是動態分配的,但是相對於一些位址的位移差是不變的

比如

1次搜索特徵碼A1C4FC8B008B401C


地址定位到400000,血的地址是410000,那麼她們的位移差就是10000,


2次搜索特徵碼A1C4FC8B008B401C


地址定位到500000,那麼血的地址就是500000+10000就是了,


舉個VB例子

dim i as long,u as long 'u表示血的位址

i=ScanTZ(hProc, "A1C4FC8B008B401C")


u=i+&H10000 '這樣就得到準確血的地址了

當然你要早到正確的特徵碼(不要問我怎麼找特徵碼,這個去查論壇的相關貼)


'關於應用,在舉個例子

'比如征途的體力什麼的是按照人物的名稱的Unicode來定位的

'比如人物名稱"廣海遊戲"他的UNicodeB9E3BAA3D3CECFB7


dim i as long,u as long 'u表示血的位址,i表示記憶體人物名稱位址

i=ScanTZ(hProc, "B9E3BAA3D3CECFB7") '假設血的地址和人物名稱相差&H10000


u=i+&H10000 '這樣就得到準確血的地址了

mem.dllVB調用源代碼在附件,dll很小的,支援其他語言調用的


收藏收藏 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


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


手機版 | Archiver | 外掛聯合國

GMT+8, 2024-5-11 03:49 , Processed in 0.053280 second(s), 17 queries , Memcache On.

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

回頂部
第二步?
第三步?