- UID
- 70161
- 帖子
- 33715
- 主題
- 4398
- 精華
- 0
- 積分
- 3370
- 楓幣
- 6818
- 威望
- 1994
- 存款
- 270000
- 贊助金額
- 0
- 推廣
- 87
- GP
- 13245
- 閱讀權限
- 180
- 性別
- 男
- 在線時間
- 27513 小時
- 註冊時間
- 2014-7-11
- 最後登入
- 2024-11-24
|
本帖最後由 qwas963563 於 2020-5-17 00:25 編輯
此為 VC++ DLL 版本 注入即可獲取遊戲等級
NowLevel 就是 當前人物等級- #include <Windows.h>
- DWORD NowLevel = 0; //人物等級
- DWORD GetLevelHook_Address = 0x02C00195; // Hook 地址
- DWORD GetLevelHook_Retrun = GetLevelHook_Address + 5; // 返回地址
- DWORD GetLevelHook_Call = 0x009E0860; // 數據所使用的 Call
- // Hook 函數
- // lpAddress 是 需要 HOOK 的地址
- // Function 是 我們自己的函數地址
- void Hook(const DWORD lpAddress, LPCVOID Function)
- {
- DWORD OldProtection;
- VirtualProtect((LPVOID)lpAddress, 5, PAGE_EXECUTE_READWRITE, &OldProtection);
- *(LPBYTE)lpAddress = 0xE9;
- *(LPDWORD)(lpAddress + 1) = (DWORD)Function - lpAddress - 5;
- VirtualProtect((LPVOID)lpAddress, 5, OldProtection, &OldProtection);
- }
- // 我們自己的函數 取得人物等級
- void __declspec(naked) GetLevel()
- {
- _asm
- {
- mov Dword Ptr[NowLevel],edi
- call Dword Ptr[GetLevelHook_Call]
- jmp [GetLevelHook_Retrun]
- }
- }
- BOOL APIENTRY DllMain(HINSTANCE hInstance, DWORD fdwReason, LPVOID lpvReserved)
- {
- if (fdwReason == DLL_PROCESS_ATTACH)
- {
- DisableThreadLibraryCalls(hInstance);
- Hook(GetLevelHook_Address, GetLevel);
- }
- return TRUE;
- }
複製代碼 |
|