最近閒來無事發現周圍的朋友都在玩《植物大戰殭屍》的遊戲!於是動了製作這遊戲工具的念頭!雖然在網上同類工具很多 但是用c#寫的我幾乎看不到!所以我想用c#寫乙個!
首先用ce或者od或者其他反彙編工具找出遊戲的記憶體基址!
遊戲記憶體基址:base = 0x006a9ec0
至於如何獲取這些位址不在我們這論壇研究的範圍中!
對了我是用工具vs2008編寫的!
新建窗體(winform):
view code
using下面這個類是整個工具的核心:system;
using
system.drawing;
using
system.text;
using
system.windows.forms;
namespace
plantsvszombiestool
private
void form1_load(object
sender, eventargs e)
//啟動無線陽光
private
void btnget_click(object
sender, eventargs e)
if (btnget.text == "
啟用-陽光無限")
else
}private
void timer1_tick(object
sender, eventargs e)
int address = readmemoryvalue(baseaddress); //
讀取基址(該位址不會改變)
address = address + 0x768; //
獲取2級位址
address =readmemoryvalue(address);
address = address + 0x5560; //
獲取存放陽光數值的位址
writememory(address, 0x1869f); //
寫入資料到位址(0x1869f表示99999)
timer1.interval = 1000
; }
//啟動無線金錢
private
void btnmoney_click(object
sender, eventargs e)
if (btnmoney.text == "
啟用-金錢無限")
else
}private
void timer2_tick(object
sender, eventargs e)
int address = readmemoryvalue(baseaddress); //
讀取基址(該位址不會改變)
address = address + 0x82c; //
獲取2級位址
address =readmemoryvalue(address);
address = address + 0x28; //
得到金錢位址
writememory(address, 0x1869f); //
寫入資料到位址(0x1869f表示99999)
timer2.interval = 1000
; }
private
void btngo_click(object
sender, eventargs e)
int address = readmemoryvalue(baseaddress); //
讀取基址(該位址不會改變)
address = address + 0x82c; //
獲取2級位址
address =readmemoryvalue(address);
address = address + 0x24
;
int lev = 1
;
try
catch
writememory(address, lev);
}//讀取制定記憶體中的值
public
int readmemoryvalue(int
baseadd)
//將值寫入指定記憶體中
public
void writememory(int baseadd, int
value)
private
int baseaddress = 0x006a9ec0; //
遊戲記憶體基址
private
string processname = "
plantsvszombies
"; //
遊戲程序名字
}}
view code
usingsystem;
using
system.text;
using
system.diagnostics;
using
system.runtime.interopservices;
namespace
plantsvszombiestool
}return
rs; }
//根據程序名獲取pid
public
static
int getpidbyprocessname(string
processname)
return0;
}//根據窗體標題查詢視窗控制代碼(支援模糊匹配)
public
static intptr findwindow(string
title)
}return
intptr.zero;
}//讀取記憶體中的值
public
static
int readmemoryvalue(int baseaddress, string
processname)
catch
}//將值寫入指定記憶體位址中
public
static
void writememoryvalue(int baseaddress, string processname, int
value)
, 4, intptr.zero);
closehandle(hprocess);}}
}
C 記憶體操作
最近閒來無事發現周圍的朋友都在玩 植物大戰殭屍 的遊戲!於是動了製作這遊戲工具的念頭!雖然在網上同類工具很多 但是用c 寫的我幾乎看不到!所以我想用c 寫乙個!首先用ce或者od或者其他反彙編工具找出遊戲的記憶體基址!遊戲記憶體基址 base 0x006a9ec0 至於如何獲取這些位址不在我們這論壇...
C 記憶體操作
原文 c 記憶體操作 最近閒來無事發現周圍的朋友都在玩 植物大戰殭屍 的遊戲!於是動了製作這遊戲工具的念頭!雖然在網上同類工具很多 但是用c 寫的我幾乎看不到!所以我想用c 寫乙個!首先用ce或者od或者其他反彙編工具找出遊戲的記憶體基址!遊戲記憶體基址 base 0x006a9ec0 至於如何獲取...
C 記憶體操作
原文 c 記憶體操作 最近閒來無事發現周圍的朋友都在玩 植物大戰殭屍 的遊戲!於是動了製作這遊戲工具的念頭!雖然在網上同類工具很多 但是用c 寫的我幾乎看不到!所以我想用c 寫乙個!首先用ce或者od或者其他反彙編工具找出遊戲的記憶體基址!遊戲記憶體基址 base 0x006a9ec0 至於如何獲取...