看板 C_and_CPP 關於我們 聯絡資訊
我想寫個遊戲修改器 , 已找出要修改的記憶體位址 , 但卻不知道要如何撰寫程式 於是在網路上詢問相關資訊 , 在某論壇上一位高手給了我一些代碼 但我不太明白這運作的方式 , 有人告訴我這是個外掛 不用加掛code到遊戲內 , 而是獨立運行 , 可否請高手幫忙 , 依照他給我的代碼 該如何去編譯程式 ? 請指教 , 謝謝 ! ============================================================================== ============================================================================== 我已經大概知道編程 , 但是卻無法修改遊戲中的數值 , 請高手指正我哪邊錯誤了 ? 謝 謝 ! 程式可以運行 , 我在輸入 address 有加上16進位的 0x , value 這是修改直接要得值 ? 開啟時會叫出client.exe , client.exe會顯示 0x440004= 7474 代碼是外國高手幫忙的 , 我不知到哪邊錯誤 , 請版上高手幫幫忙 謝謝 ~ 遊戲暫存器: 03740268 必須要先到球員編輯區 , 輸入暫存器位址 , 才有辦法更改 此為GM8和FPE修改法 這支程式卻讀不到內部的位址 , 不知到哪邊有錯誤 ? ==================================== 首先 run MemoryEdit.exe 佢會 CreateProcess and run Client.exe Client.exe 會 不斷 咁 print 會 int 既 address and value 之後 MemoryEdit.exe 會要你 input 個 address 你要 edit 既 個 address 可以 抄返 Client.exe Show 出 o黎 既 e.g. 010E9008 就 input 0x010E9008 <= 0x 開頭 hex 之後 要你 input 個 value e.g. input 8888 之後 等 5 秒 check 返 Client.exe 佢個 value 會 唔同左 ===================================== Client.exe http://rafb.net/p/2kHbU711.html MemoryEdit.exe http://rafb.net/p/98P5I788.html ============================================================================== -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.234.241 ※ 編輯: andy79323 來自: 218.170.234.241 (03/31 23:46) ※ 編輯: andy79323 來自: 218.170.234.241 (03/31 23:47)
sunneo:.... 取得一個使用windows os的c++ ide然後開專案編譯 04/01 00:05
andy79323:無奈我使用VC++ 2005 , DEV C++ 4.9.9.2都無法順利編譯 04/01 00:10
andy79323:XP 04/01 00:10
james732:錯誤訊息? 04/01 00:17
sunneo:pi 跟π ? 這個π的嫌疑真大 04/01 00:18
andy79323:在微風發表了一篇,裡面有附上錯誤訊息,請幫忙,謝謝! 04/01 00:21
sunneo:你何不把錯誤訊息在這說出來呢? 並非每個人都逛微風 04/01 00:23
andy79323:http://tinyurl.com/ca62o8 04/01 00:24
andy79323:不好意思,我會在修改一下本文 04/01 00:25
※ 編輯: andy79323 來自: 218.170.234.241 (04/01 00:26)
iamivers0n:複製到了奇怪的字元? 04/01 00:28
andy79323:請問哪邊複製出錯? 請指正 , 謝謝 ! 04/01 00:34
sunneo:你可以嘗試把錯誤訊息 (line 17)那部份點兩下看看他跳到哪 04/01 00:35
====================================================== 按下跑到這段 ::CreateProcess(NULL, szFileName, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, π); ======================================================
sunneo:有可能確實就是那詭異的`π` 04/01 00:35
sunneo:如果你要printf 要#include <stdio.h> 04/01 00:36
※ 編輯: andy79323 來自: 218.170.234.241 (04/01 00:39)
sunneo:你要不要嘗試把那個π改成pi 剛剛已經說過很多次了 04/01 00:43
andy79323:已更改 , 但還是如此 04/01 00:46
sunneo:Process改hProcess,Thread改pThread,π改&pi 04/01 00:49
sunneo: ^ hThread 04/01 00:50
====================================================== 以下為修改過的 , 請幫指正哪邊有改錯 , 謝謝 ! #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)}; hPROCESS_INFORMATION pi; ::CreateProcess(NULL, szFileName, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi); ::CloseHandle(pi.hThread); g_hProcess = pi.hProcess; if(WriteMemory(g_arList, iVal)) printf("Write data Sucess!\n"); ::CloseHandle(g_hProcess); return 0; } ========================================= ※ 編輯: andy79323 來自: 218.170.234.241 (04/01 01:00)
sunneo:#include <stdio.h> 04/01 01:01
sunneo:我想你很需要重頭學起程式 另外還有一個可參考的說明書 04/01 01:01
sunneo:最後唯一需要改的是g_arList要給予你想寫入的位址 04/01 01:03
andy79323:很謝謝您的幫忙 , 只接觸過簡單的指令 , 這方面還不太懂 04/01 01:15
andy79323:雖然這不能當作理由,但沒有個起始點,要學起不易.. 04/01 01:16
andy79323:另外,雖然都依照您所講更改,但似乎還是無法成功編譯.. 04/01 01:17
sunneo:我已經成功編譯了... 04/01 01:21
sunneo:http://rafb.net/p/Bw0rn160.html 04/01 01:23
andy79323:有些地方我改錯了... 04/01 01:35
andy79323:有勞您費盡心力指正 , 在下深感抱歉 , 謝謝您的幫忙 04/01 01:37
yoco315:π實在太酷了 XD 04/01 03:53
yoco315:Lv1 就要單挑 final boss 啦 XD 選這個題目當練習 04/01 03:56
yoco315:很好!很有志氣! 04/01 03:56
VictorTom:推樓上, LV1就要挑Final BOSS....Orz 04/01 09:16
MOONRAKER:LV1就跑去有swamp drake出沒的乾河谷 XD 04/01 10:04
VictorTom:樓上您的例子好複雜....XD 04/01 11:40
※ 編輯: andy79323 來自: 218.170.219.70 (04/02 10:50)