模块隐藏

遍历模块

HANDLE WINAPI CreateToolhelp32Snapshot(
    DWORD dwFlags,
    DWORD th32ProcessID
)
//dwFlags:
TH32CS_SNAPMODULE   遍历模块

PEB

(Process Environment Block 进程环境块)
存放进程信息,每个进程都有自己的PEB信息

如何找到PEB

  1. EPROCESS进程内核对象结构体中 0x1b0偏移的位置
  2. TEB线程环境块的 0x30位置

(实际上32位程序中的PEB的位置是固定的)

TEB

(Thread EnvironmentBlock 线程环境块)
系统在此TEB种保存频繁使用的线程相关的数据

如何找到TEB:
段寄存器fs中记录了TEB的存储位置

TEB偏移0X30的位置记录了TEB的地址

可以通过以下汇编来获取

MOV EAX,FS:[0x30]
//获得PEB
PEB_LDR_DATA* pPebLdrData=NULL;
_asm
{
    mov eax,fs:[0x30]
    mov ecx,[eax+0x0c]
    mov pPebLdrData,ecx
}
//获得LDR_DATA
pPebLdrData = (PEB_LDR_DATA*)*(_NT_PEB + 0x0c)