![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() ![]() |
|
主題工具 | 顯示模式 |
|
![]() |
#1 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 在 win api 裡有兩個可用指令
ReadProcessMemory 與 WriteProcessMemory VB範例: 如何掃描外部程式的記憶體 http://sunh.hosp.ncku.edu.tw/~cww/html/q00534.html 如何讀寫外部程式的記憶體 http://sunh.hosp.ncku.edu.tw/~cww/html/q00486.html |
![]() |
送花文章: 2055,
![]() |
![]() |
#3 (permalink) | |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 引用:
Read/WriteProcessMemory(ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long 所以 lpBaseAddress: 這是要讀取或是寫入的基底位址 就是 記憶體位置 Win API 不是只有 VB能用 C/C++ 要用的話是以引入 .h檔方式 不熟程式語言的話 基本上還是建議你用工具去改 像個人都用 GameMaster |
|
![]() |
送花文章: 2055,
![]() |
向 mini 送花的會員:
|
![]() |
#4 (permalink) |
註冊會員
|
![]() 貌似這種? 原始碼是在外國論壇詢問的 , 他向我說明用 C++ 可以用您講的
WriteProcessMemory 直接 寫 Value 落 "Address" 程式語言這方面不是很懂 , 我也是以 FPE 和 GM8修改 , 因為這款遊戲目前 Bug 還很多 , 想編譯這款修改器 , 幫助更多人 #include <windows.h> // add the windows.h HANDLE g_hProcess; DWORD g_arList; // Fill the address you want int iVal; // Fill the value you want BOOL WriteMemory(DWORD dwAddr, DWORD dwValue) { return ::WriteProcessMemory(g_hProcess, (LPVOID)dwAddr, &dwValue, sizeof(DWORD), NULL); } int main() { char szFileName[] = "target.exe"; STARTUPINFO si = {sizeof(si)}; PROCESS_INFORMATION pi; ::CreateProcess(NULL, szFileName, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, π); ::CloseHandle(pi.Thread); g_hProcess = pi.Process; if(WriteMemory(g_arList, iVal)) printf("Write data Sucess!\n"); ::CloseHandle(g_hProcess); return 0; } |
![]() |
送花文章: 2,
![]() |
向 eric10104 送花的會員:
|