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 ...