冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 1125|回覆: 2
打印 上一主題 下一主題

[求助] 求一個C或者C++實現的源代碼,用來獲取當前練功角色等級。需要的源代碼要能編譯成exe軟體哦。

[複製鏈接]

5

主題

0

好友

3

積分

新手上路

Rank: 1

UID
262674
帖子
16
主題
5
精華
0
積分
3
楓幣
3001
威望
2
存款
0
贊助金額
0
推廣
0
GP
2
閱讀權限
10
性別
保密
在線時間
14 小時
註冊時間
2019-5-7
最後登入
2023-2-15
跳轉到指定樓層
1
發表於 2020-5-15 23:14:05 |只看該作者 |倒序瀏覽
1500楓幣
要求:使用C或者C++編寫代碼,需要能編譯成exe程序, 可運行后獲取當前練功角色等級
          最好是使用CRC數據進行獲取。
          我提供CRC數據:
          // TwMs v225.1 CRC 取得人物等級
[ENABLE]
Registersymbol(Level)
Alloc(GetLevel,64)
Alloc(Level,4)
Label(Return)

GetLevel:
mov [Level],edi
call 009E0860
jmp Return

02C00195:
jmp GetLevel
Return:

[DISABLE]
02C00195:
call 009E0860

DeAlloc(Level)
DeAlloc(GetLevel)

最佳答案

qwas963563 查看完整內容

C++ EXE 代碼實現 源碼有點醜 我盡力了 可能還有更快的方式 但我不會 不推薦使用 EXE 來實現 Hook DLL 還是快多了 我把數據給改了下 因 Call 009E0860 之後 eax 會自動給 所以不用還原 eax 然而 借 ecx 來用 因為 回去源代碼的時候 02C00195 - E8 C606DEFD - call 009E0860 02C0019A - 83 C4 04 - add esp,04 { 4 } 02C0019D - 8B C8 - mov ecx,eax ecx 會被 eax 取代 故 ...
[發帖際遇]: n81520 撿到錢卻私吞,被路人檢舉懲罰 1 楓幣 幸運榜 / 衰神榜
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1彩票
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$

4406

主題

10

好友

3371

積分

副站長

Rank: 8Rank: 8

UID
70161
帖子
33750
主題
4406
精華
0
積分
3371
楓幣
7372
威望
1994
存款
270000
贊助金額
0
推廣
87
GP
13257
閱讀權限
180
性別
在線時間
27532 小時
註冊時間
2014-7-11
最後登入
2024-11-26

積分勳章 解說達人 論壇粉絲 太陽勳章 神手勳章 2017端午節紀念勳章 發帖達人 2017年紀念勳章 私服達人 Android勳章 2017中秋節紀念勳章 在線終極王 論壇支持王 長老勳章 熱心助人 版主勳章 管理者 核心勳章 除蟲大隊 副站長勳章 2017聖誕節紀念勳章 2018年紀念勳章 Apple勳章 2018端午節紀念勳章 懶人勳章 幼兒勳章 性別(女) 性別(男) 音樂勳章 富豪勳章 富可敵國 2018中秋節紀念勳章 中秋節紀念勳章 2018萬聖節紀念勳章 2018聖誕節紀念勳章 2019年紀念勳章 2019端午節紀念勳章 2019中秋節紀念勳章 2019聖誕節紀念勳章 2020年紀念勳章 屁孩勳章 2020端午節紀念勳章 2020中秋節紀念勳章 2020聖誕節紀念勳章 2021年紀念勳章 2021端午節紀念勳章 2021中秋節紀念勳章 2021聖誕節紀念勳章 2022年紀念勳章 2022端午節紀念勳章 2022中秋節紀念勳章 2022聖誕節紀念勳章 2023年紀念勳章 2023端午節紀念勳章 2023中秋節紀念勳章 2023聖誕節紀念勳章 2024年紀念勳章 2024端午節紀念勳章 2024中秋節紀念勳章

2
發表於 2020-5-15 23:14:06 |只看該作者
C++ EXE 代碼實現 源碼有點醜 我盡力了
可能還有更快的方式 但我不會

不推薦使用 EXE 來實現 Hook
DLL 還是快多了

我把數據給改了下
因 Call 009E0860 之後 eax 會自動給
所以不用還原 eax

然而 借 ecx 來用
因為 回去源代碼的時候

02C00195 - E8 C606DEFD           - call 009E0860
02C0019A - 83 C4 04              - add esp,04 { 4 }
02C0019D - 8B C8                 - mov ecx,eax

ecx 會被 eax 取代
故也不用還原
  1. #include <Windows.h>
  2. #include <stdio.h>

  3. DWORD GetLevelHook_Address = 0x02C00195; //Hook 地址
  4. HANDLE GameHandle = 0;
  5. BYTE GetLevelAOB[] = { 0xB8 ,0x00 ,0x00 ,0x33 ,0x05 ,0x89 ,0x38, 0xB8, 0x60, 0x08, 0x9E, 0x00, 0xFF, 0xD0, 0xB9, 0x9A, 0x01, 0xC0, 0x02 ,0xFF ,0xE1 }; // GetLevel 的 AOB

  6. /*
  7.         GetLevelAOB 展示用
  8. void __declspec(naked) GetLevel()
  9. {
  10.         _asm
  11.         {
  12.                 mov eax, 0x05330000 // 由於懶得在自己申請一個區域的記憶體 所以採用遊戲內不會使用到的地址 用來保存 人物等級
  13.                 mov Dword Ptr[eax], edi
  14.                 mov eax, 0x009E0860 // 數據所使用的Call
  15.                 call eax
  16.                 mov ecx, 0x02C00195 + 5 //返回地址
  17.                 jmp ecx
  18.         }
  19. }
  20. */

  21. BOOL Init()
  22. {
  23.         HWND GameHwd = 0;
  24.         DWORD GamePid = 0;
  25.         DWORD pNowLevel = 0; //人物等級
  26.         while (!GameHandle)
  27.         {
  28.                 GameHwd = FindWindowA(NULL, "MapleStory");
  29.                 if (GameHwd)
  30.                         GetWindowThreadProcessId(GameHwd, &GamePid);
  31.                 if (GamePid)
  32.                         GameHandle = OpenProcess(PROCESS_ALL_ACCESS, false, GamePid); // 開啟進程
  33.                 if (GameHandle)
  34.                 {
  35.                         //先將我們借用地址的值給歸0
  36.                         WriteProcessMemory(GameHandle, (LPVOID)0x05330000, &pNowLevel, 4, NULL);//人物等級        #0x05330000
  37.                 }
  38.                 Sleep(250);
  39.         }
  40.         return true;
  41. }

  42. /*
  43.         pHandle                為進程句炳
  44.         lpAddress        為要進行 HOOK 的地址
  45.         Function        為我們自己的函數
  46. */
  47. BOOL HookEx(HANDLE pHandle,DWORD lpAddress, LPCVOID Function)
  48. {
  49.         BOOL ReturnValue = false;
  50.         DWORD JmpTemp = 0;
  51.         DWORD OldProtection;
  52.         DWORD Jmp = 0xE9;
  53.         VirtualProtectEx(pHandle, (LPVOID)lpAddress, 5, PAGE_EXECUTE_READWRITE, &OldProtection);
  54.         JmpTemp = (DWORD)Function - lpAddress - 5;
  55.         WriteProcessMemory(pHandle, (LPVOID)lpAddress, &Jmp, 1, NULL);
  56.         ReturnValue = WriteProcessMemory(pHandle, (LPVOID)(lpAddress + 1), &JmpTemp, 4, NULL);
  57.         VirtualProtectEx(pHandle, (LPVOID)lpAddress, 5, OldProtection, &OldProtection);
  58.         return ReturnValue;
  59. }

  60. LPVOID AllocHook;
  61. BOOL StartHook()
  62. {
  63.         AllocHook = VirtualAllocEx(GameHandle, NULL, 50, MEM_COMMIT, PAGE_EXECUTE_READWRITE); //先在楓谷申請一個地方記憶體
  64.         WriteProcessMemory(GameHandle, AllocHook, &GetLevelAOB, 50, NULL); //將我們申請的地址 寫入 我們的 GetLevelAOB << 這裡採用 AOB 進行寫入
  65.         HookEx(GameHandle, GetLevelHook_Address, AllocHook);
  66.         return true;
  67. }

  68. int main()
  69. {
  70.         DWORD LvTemp = 0;
  71.         Init();// 尋找遊戲 並 初始化功能
  72.         if (StartHook())
  73.         {
  74.                 printf("Hook 完成 等待開始\n");
  75.                 system("pause"); // 按下任意鍵開始讀取等級
  76.                 while (1)
  77.                 {
  78.                         ReadProcessMemory(GameHandle, (LPVOID)0x05330000, &LvTemp, 4, NULL); // 讀取我們借用的地址
  79.                         printf("目前等級 : %d\n", LvTemp); // 得到目前等級
  80.                         Sleep(250);
  81.                 }
  82.         }
  83.         printf("Hook 失敗\n");
  84.         system("pause");
  85.         return true;
  86. }
複製代碼
已有 1 人評分楓幣 收起 理由
n81520 + 1

總評分: 楓幣 + 1   查看全部評分

回覆

使用道具 舉報

2110

主題

12

好友

205

積分

註冊會員

Rank: 2

UID
249601
帖子
3043
主題
2110
精華
0
積分
205
楓幣
150
威望
191
存款
0
贊助金額
0
推廣
19
GP
176
閱讀權限
20
性別
保密
在線時間
274 小時
註冊時間
2018-10-10
最後登入
2024-11-21

太陽勳章 發帖達人 私服達人 Android勳章 神手勳章 2018年紀念勳章 2018萬聖節紀念勳章 2019年紀念勳章 熱心助人 2020年紀念勳章 富豪勳章 性別(女) 性別(男) 音樂勳章 懶人勳章 幼兒勳章 2020端午節紀念勳章 積分勳章 2020中秋節紀念勳章 解說達人 屁孩勳章 論壇粉絲 2020聖誕節紀念勳章 2021年紀念勳章 除蟲大隊 2021中秋節紀念勳章 2021聖誕節紀念勳章 2022年紀念勳章 論壇支持王 2022中秋節紀念勳章 2022聖誕節紀念勳章 2023年紀念勳章 2023端午節紀念勳章 2024年紀念勳章

3
發表於 2020-5-17 16:55:28 |只看該作者
4大佬
交我寫外掛豪嗎

點評

qwas963563  教學很多 複製貼上 就完成了 :)  發表於 2020-5-17 19:14
回覆

使用道具 舉報

您需要登入後才可以回文 登入 | 立即註冊

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-11-29 12:11

回頂部