核心列舉程序總結

2021-07-11 13:21:13 字數 2548 閱讀 6440

我知道的有三種方法

這裡的第三種和第二種是一樣的 隱藏程序也可以在這麼做手腳

但需要注意多執行緒,在操作前,理應加鎖

1.暴力列舉程序 通過pslookupprocessbyprocessid/cid獲得eprocess

第乙個引數我們使用迴圈 填入0~65535

for (ulong i = 0; i < 65535; i += 4)  

return status_success;

其中注入pslookupprocessbyprocessid會導致bypass,建議使用cid

2.通過zwquerysysteminformation

3.通過程序活動連來列舉

**如下:

#include "ntddk.h"

typedef struct _process_info

processinfo,*pprocessinfo;

typedef struct _system_threads

system_threads,*psystem_threads;

typedef struct _system_process_information system_process_information, *psystem_process_information;

typedef enum _system_information_class

system_information_class;

typedef ntstatus (*zwquerysysteminformation)(

_in_ system_information_class systeminformationclass,

_inout_ pvoid systeminformation,

_in_ ulong systeminformationlength,

_out_opt_ pulong returnlength

);ntstatus

pslookupprocessbyprocessid(

in handle processid,

out peprocess *process

);ntkernelapi uchar* psgetprocessimagefilename(peprocess process);

void enumprocessbyzw()

status = zwquerysysteminformation(systemprocessesandthreadsinformation,0,0,&retusize);

if(retusize==0)

allsize = exallocatepool(nonpagedpool,retusize);

if(allsize==0)

status = zwquerysysteminformation(systemprocessesandthreadsinformation,allsize,(ulong)retusize,&retusize);

if(!nt_success(status))

processinfo = (system_process_information*)allsize;

while (processinfo->nextentryoffset)

*/ processinfo = (system_process_information*)((ulonglong)processinfo + processinfo->nextentryoffset);

} exfreepool(allsize);

}//暴力列舉pid,列舉程序

ntstatus searchprocesspid(ulong pid) }

void enumprocessbylink()

; eprocess = (ulonglong)psgetcurrentprocess();

p_head = (plist_entry)(eprocess+0x188);

p_list = p_head;

while (p_list->flink!=p_head)

kdprint(("processnum:%d",processnum));

}#define active_process_link 0x188

//通過eprocess列舉程序

ntstatus searchprocesseprocess()

} while (process != null);

return status;

} void driverunload(pdriver_object pdriverobject)

ntstatus driverentry(pdriver_object pdriverobject,punicode_string punicodestring)

測試平台:win7 x64 build 7601

windows核心程式設計 程序許可權總結

1 首先,乙個程序要進行特權操作,例如修改其他程序記憶體資料的話,必須要有比較大的特權,一般來說,只有管理員賬號有這個許可權,那麼我們程式的第一件事情,就是確認當前啟動這個程序 的賬號,是否為管理員賬號 可以把這個函式當windows api來使用,這個函式返回bool值,當函式返回true成功,當...

列舉程序控制代碼

目前正在做的專案進行效能測試,被通知程序控制代碼數已經到達2600多,心中甚是一驚,用procexp檢視控制代碼表得知,為型別為key的控制代碼,名稱為 registry hklm microsoft ctf assemblyitem.基本上得知是輸入法關聯的登錄檔項,而後用procmon監視登錄檔...

列舉程序資訊

1.psapi法 include include include include psapi.h pragma comment lib,psapi.lib int main numofprocess cbneededprocess sizeof dword for uint i 0 i3.wtsop...