作業系統與網路 2019 1 30

2021-09-11 23:48:36 字數 2025 閱讀 6160

void cmodifymemory:

:firstfind

(dword nfindvalue)

6.完成 findonepage 函式,首先用乙個陣列來儲存查詢到的內容: dword sz_buffer[1024] = ;

7.讀程序位址空間的內容,讀失敗則返回: if(0 == ::readprocessmemory(m_hopenpracess, (lpcvoid)dwpagebeginaddr, (lpvoid)sz_buffer, 4096, 0)) return ;

8.讀取成功則查詢偏移量,建立乙個成員 list m_lst_addr 來儲存與查詢值相同的位址;

// 讀取一頁的內容

void cmodifymemory:

:findonepage

(dword dwpagebeginaddr, dword nfindvalue)

;// 讀程序位址空間的內容

// 讀取失敗則返回if(

0==::

readprocessmemory

(m_hopenpracess,

(lpcvoid)dwpagebeginaddr,

(lpvoid)sz_buffer,

4096,0

))return

;// 讀取成功則查詢偏移量

for(

int i=

0; i<

1024

; i++)}

}

1.該函式的功能就是在右側的 list 控制項中顯示與要查詢值相同的位址;

2.遍歷 m_lst_addr 中的元素,並在 list 控制項中顯示位址;

void cmodifymemory:

:showalladdr

(clistctrl* plistctrl)

}

3.在 第一次查詢 按鈕中進行呼叫該函式

// 第一次查詢按鈕

void ctaskmanagerdlg:

:onbnclickedbutton5()

}

1.給類 cmodifymemory 新增乙個 void secondfind(dword nfindvalue) 函式;

2.在該函式中,我們首先遍歷儲存第一次查詢結果的鍊錶,其次讀取每個位址的值,讀取成功則與第二次要查詢的值進行比較,否則刪除鍊錶中的節點;

void cmodifymemory:

:secondfind

(dword nfindvalue)

else

}else

}}

3.在 第二次查詢 按鈕的訊息處理函式中呼叫上述函式;

// 第二次查詢按鈕

void ctaskmanagerdlg:

:onbnclickedbutton6()

}

1.在 cmodifymemory 類中新增乙個 bool modifymemory(dword mmodifyaddr, dword mmodifyvalue) 函式;

2.在 cmodifymemory::modifymemory 函式中進行寫記憶體的操作;

bool cmodifymemory:

:modifymemory

(dword mmodifyaddr, dword mmodifyvalue)

else

}

3.在 修改 按鈕處進行呼叫該函式;

// 修改值的按鈕

void ctaskmanagerdlg:

:onbnclickedbutton8()

else

}

// 清空 按鈕

void ctaskmanagerdlg:

:onbnclickedbutton7()

作業系統與網路 2019 2 1

1.作用域是通過 來進行區分的 2.全域性變數需要使用 來與區域性變數進行區分 同名情況下 3.命名空間是 ansi c 引入的可以由使用者命名的作用域,用來處理程式中常見的同名衝突 4.當只呼叫標頭檔案而沒有開啟命名空間時,某些函式是無法使用的。1.函式的預設值從右到左 右邊有,左邊無 2.函式的...

作業系統與網路 2019 3 18

int main include using namespace std include pragma comment lib,ws2 32.lib intmain if lobyte wsadata.wversion 2 hibyte wsadata.wversion 2 else printf ...

作業系統與網路 2019 3 25

void cudpnet closenet 解除安裝庫 wsacleanup bool cudpnet senddata ulong uip,const char pszsendbuffer,int nsendlen return true unsigned int stdcall cudpnet ...