-
-
[原创]获取被挂起进程基址小技巧(傀儡进程)
-
发表于:
2019-7-29 15:13
10496
-
创建傀儡进程时,一般以挂起模式创建一个系统进程,如:svchost.exe
然后调用未导出NT函数NtQueryInformationProcess来获取目标进程的PEB地址,拿到PEB地址后,再通过ReadProcessMemory获取目标进程的PEB数据,
最后NtUnMapViewOfSection,传入PEB结构中的ImageBaseAddress来卸载目标进程的内存。
其实可以直接通过GetThreadContext这个函数来直接获取PEB地址,在Ebx寄存器中保存的就是PEB地址。
typedef struct __PEB {
BYTE InheritedAddressSpace;
BYTE ReadImageFileExecOptions;
BYTE BeingDebugged;
BYTE SpareBool;
void* Mutant;
void* ImageBaseAddress; // offset 0x08
_PEB_LDR_DATA* Ldr;
/*....*/
}MYPEB, *PMYPEB;
typedef struct __PEB {
BYTE InheritedAddressSpace;
BYTE ReadImageFileExecOptions;
BYTE BeingDebugged;
BYTE SpareBool;
void* Mutant;
void* ImageBaseAddress; // offset 0x08
_PEB_LDR_DATA* Ldr;
/*....*/
}MYPEB, *PMYPEB;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课