作者andy79323 (‵皿′)
看板C_and_CPP
標題[問題]請教有關編譯遊戲修改器
時間Tue Mar 31 23:22:19 2009
我想寫個遊戲修改器 , 已找出要修改的記憶體位址 , 但卻不知道要如何撰寫程式
於是在網路上詢問相關資訊 , 在某論壇上一位高手給了我一些代碼
但我不太明白這運作的方式 , 有人告訴我這是個外掛
不用加掛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)
1F:推 sunneo:.... 取得一個使用windows os的c++ ide然後開專案編譯 04/01 00:05
2F:→ andy79323:無奈我使用VC++ 2005 , DEV C++ 4.9.9.2都無法順利編譯 04/01 00:10
3F:→ andy79323:XP 04/01 00:10
4F:→ james732:錯誤訊息? 04/01 00:17
5F:→ sunneo:pi 跟π ? 這個π的嫌疑真大 04/01 00:18
6F:→ andy79323:在微風發表了一篇,裡面有附上錯誤訊息,請幫忙,謝謝! 04/01 00:21
7F:→ sunneo:你何不把錯誤訊息在這說出來呢? 並非每個人都逛微風 04/01 00:23
9F:→ andy79323:不好意思,我會在修改一下本文 04/01 00:25
※ 編輯: andy79323 來自: 218.170.234.241 (04/01 00:26)
10F:→ iamivers0n:複製到了奇怪的字元? 04/01 00:28
11F:→ andy79323:請問哪邊複製出錯? 請指正 , 謝謝 ! 04/01 00:34
12F:→ sunneo:你可以嘗試把錯誤訊息 (line 17)那部份點兩下看看他跳到哪 04/01 00:35
======================================================
按下跑到這段
::CreateProcess(NULL, szFileName, NULL, NULL, FALSE, CREATE_NEW_CONSOLE,
NULL, NULL, &si, π);
======================================================
13F:→ sunneo:有可能確實就是那詭異的`π` 04/01 00:35
14F:→ sunneo:如果你要printf 要#include <stdio.h> 04/01 00:36
※ 編輯: andy79323 來自: 218.170.234.241 (04/01 00:39)
15F:→ sunneo:你要不要嘗試把那個π改成pi 剛剛已經說過很多次了 04/01 00:43
16F:→ andy79323:已更改 , 但還是如此 04/01 00:46
17F:→ sunneo:Process改hProcess,Thread改pThread,π改&pi 04/01 00:49
18F:→ 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)
19F:推 sunneo:#include <stdio.h> 04/01 01:01
20F:→ sunneo:我想你很需要重頭學起程式 另外還有一個可參考的說明書 04/01 01:01
21F:→ sunneo:最後唯一需要改的是g_arList要給予你想寫入的位址 04/01 01:03
22F:→ andy79323:很謝謝您的幫忙 , 只接觸過簡單的指令 , 這方面還不太懂 04/01 01:15
23F:→ andy79323:雖然這不能當作理由,但沒有個起始點,要學起不易.. 04/01 01:16
24F:→ andy79323:另外,雖然都依照您所講更改,但似乎還是無法成功編譯.. 04/01 01:17
25F:推 sunneo:我已經成功編譯了... 04/01 01:21
27F:→ andy79323:有些地方我改錯了... 04/01 01:35
28F:→ andy79323:有勞您費盡心力指正 , 在下深感抱歉 , 謝謝您的幫忙 04/01 01:37
29F:推 yoco315:π實在太酷了 XD 04/01 03:53
30F:推 yoco315:Lv1 就要單挑 final boss 啦 XD 選這個題目當練習 04/01 03:56
31F:→ yoco315:很好!很有志氣! 04/01 03:56
32F:推 VictorTom:推樓上, LV1就要挑Final BOSS....Orz 04/01 09:16
33F:→ MOONRAKER:LV1就跑去有swamp drake出沒的乾河谷 XD 04/01 10:04
34F:推 VictorTom:樓上您的例子好複雜....XD 04/01 11:40
※ 編輯: andy79323 來自: 218.170.219.70 (04/02 10:50)