ShellCode加载器
进程镂空(傀儡进程)
进程镂空(Process Hollowing), 又称傀儡进程
, 是一种恶意软件(malware)利用的代码注入技术。它主要用于恶意代码注入到合法进程中, 以规避安全检测、提高恶意代码执行的隐蔽性和稳定性;
TEB
TEB(Thread Environment Block), 线程环境变量块
, TEB中包含了线程的堆栈指针、TLS(线程本地存储)指针、异常处理链表指针、用户模式分页表指针等信息。TEB中fs寄存器
通常被设置为fs:[0]
(32位), 指向当前线程的的TEB结构体。其他线程可以通过访问自己的TEB结构体来获取自己的状态和信息。
PEB
PEB(Process Environment Block), 进程环境变量块
, PEB中包含了进程的代码、数据段指针、进程的环境变量、进程启动参数信息以及加载的dll信息等。PEB结构体中的fs段寄存器
通常被设置为0x30
(32位), 指向当前进程的PEB结构体。
IAT Hook
IMAGE_IMPORT_DESCRIPTOR
中两个IMAGE_THUNK_DATA
结构体,第一个位导入名称表(INT),第二个位导入地址表(IAT)。两个结构在磁盘文件中时是没有差别的,但是当PE文件被装载到内存中后,FirstThunk
字段指向的IMAGE_THUNK_DATA
的值会被Windows进行填充。该值为一个RVA,该RVA加上映像基址后,虚拟地址就保存了真正的导入函数的入口地址Inline Hook(内联钩子注入)流程