C 讀寫記憶體也不差

2021-09-22 12:12:53 字數 3229 閱讀 2056

c# 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)

intaddress

=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)

intaddress

=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)

intaddress

=readmemoryvalue(baseaddress);

//讀取基址(該位址不會改變)

address

=address

+0x82c;//

獲取2級位址

address

=readmemoryvalue(address); address

=address

+0x24

;int

lev=1;

trycatch

writememory(address, lev); }

//讀取制定記憶體中的值

public

intreadmemoryvalue(

intbaseadd)

//將值寫入指定記憶體中

public

void

writememory(

intbaseadd,

intvalue)

private

intbaseaddress

=0x006a9ec0;//

遊戲記憶體基址

private

string

processname="

plantsvszombies";

//遊戲程序名字

} }

下面這個類是整個工具的核心

c# code

using

system;

using

system.text;

using

system.diagnostics;

using

system.runtime.interopservices;

namespace

plantsvszombiestool }

return

rs; }

//根據程序名獲取pid

public

static

intgetpidbyprocessname(

string

processname)

return

0; }

//根據窗體標題查詢視窗控制代碼(支援模糊匹配)

public

static

intptr findwindow(

string

title) }

return

intptr.zero; }

//讀取記憶體中的值

public

static

intreadmemoryvalue(

intbaseaddress,

string

processname)

catch

}//將值寫入指定記憶體位址中

public

static

void

writememoryvalue(

intbaseaddress,

string

processname,

intvalue) ,

4, intptr.zero); closehandle(hprocess); } } }

也談C 記憶體區域

眾所周知,c 記憶體區域被分為5大類 棧 堆 自由儲存區 全域性 靜態儲存區 常量儲存區。棧由編譯器控制,棧空間的申請 使用和釋放全權由編譯器處理。這裡的 全權處理 意思是責任歸屬,並不是說編譯器在程式執行時介入管理。實際上,編譯器的工作在編譯期就完成了,它對棧的管理體現在編譯時對暫存器esp的維護...

C 外掛程式 讀寫遊戲記憶體

以下為 關鍵 setwindowtext 植物大戰殭屍太陽修改器 斯人 設定視窗標題 gamehwnd findwindow mainwindow 植物大戰殭屍中文版 獲取控制代碼 getwindowthreadprocessid gamehwnd,hprocid 獲取程序id mprocid op...

C 外掛程式 讀寫遊戲記憶體

以下為 關鍵 setwindowtext 植物大戰殭屍太陽修改器 斯人 設定視窗標題 gamehwnd findwindow mainwindow 植物大戰殭屍中文版 獲取控制代碼 getwindowthreadprocessid gamehwnd,hprocid 獲取程序id mprocid op...