用户层获取TEB PEB结构地址 遍历进程模块.doc
1.fs寄存器指向TEB结构
2.在TEB+0x30地方指向PEB结构
3.在PEB+0x0C地方指向PEB_LDR_DATA结构
4.在PEB_LDR_DATA+0x1C地方就是一些动态连接库地址了,如第一个指向ntdll.dll,第二个就是kernel32.dll的地址。
其结构示意图如图
利用PEB查找kernerl32地址的汇编实现
mov eax, fs:0x30 ;PEB的地址
mov eax, [eax + 0x0c] ;Ldr的地址
mov esi, [eax + 0x1c] ;Flink地址
lodsd
mov eax, [eax + 0x08] ;eax就是kernel32.dll的地址