將第二個程式的程序號寫入第乙個的id中,同時將&i位址寫在writeprocessmemory中,除錯可以發現,改變了第二個程式的i的值
#include#include#include#define id 4368
int _tmain()
heaplist32 hl = ;
hl.dwsize = sizeof(hl);
heap32listfirst(hsnapshot,&hl);
do;he.dwsize = sizeof(he);
heap32first(&he,hl.th32processid,hl.th32heapid);
do while (heap32next(&he));
} while (heap32listnext(hsnapshot, &hl));
handle hprocess = openprocess(process_all_access,false,id);
int i = 0;
readprocessmemory(hprocess,(lpcvoid)(0x13b0818),&i,4,null);
i = 0;
writeprocessmemory(hprocess, (lpvoid)(0x13b0818), &i, 4, null);//往記憶體中寫資料,將i=0賦給它
closehandle(hsnapshot);
closehandle(hprocess);
_gettchar();
return 0;}/*
這種列舉方法,只能列舉其他程序中堆記憶體的資訊
執行緒棧的記憶體資訊,沒法列出來
我們可以獲得其他程序中記憶體資料,也可以修改其他程序中的資料
*/
#include#includeint _tmain()
_gettchar();
return 0;
}
windows核心程式設計 程序
程序定義成乙個正在執行的程式的例項,包含兩個部分 1 乙個核心物件,作業系統用它來管理程序。核心物件也是系統儲存程序統計資訊的地方。2 乙個位址空間,其中包含所有可執行 exe檔案 或dll模組的 和資料。此外,還包括動態記憶體分配,比如執行緒堆疊和堆的分配。windows支援兩種型別的應用程式 g...
windows核心程式設計 程序初步
程序 什麼是程序,系統如何建立乙個核心物件來管理程序。如何通過程序核心物件來操作乙個程序。程序的屬性,以及查詢和修改程序屬性的函式。程序的結束。乙個程序,就是乙個正在執行的程式!乙個程式,可以產生多個程序。程序是死的,程序必須有乙個執行緒!primary thread 如果程序內所有執行緒退出,那麼...
windows核心程式設計學習體會1 獲取程序例項控制代碼
程序包括兩部分,乙個是核心物件,乙個是位址空間。系統通過核心物件對程序進行管理,位址空間包括所有可執行檔案和dll檔案以及動態記憶體分配。程序位址空間的每乙個可執行檔案或者dll檔案都被賦予了乙個例項控制代碼,主要通過兩個函式獲取該例項控制代碼值 getmodulehandle 和getmodule...