[求助]关于PEB结构的一点疑问!
发表于:
2007-11-21 16:55
10432
在WinDbg中查看PEB的结构,前面几个字节如下:
PEB at 7ffd5000
InheritedAddressSpace: No
ReadImageFileExecOptions: No
BeingDebugged: Yes
ImageBaseAddress: 00400000 ;偏移量到底是??
Ldr 00241ea0
在《脱壳的艺术》中,用IsDebugPresent方法检测时,获取BeingDebugged的方法如下:
Mov eax,dword [fs:0x30] ;EAX = TEB.ProcessEnvironmentBlock
movzx eax,byte [eax+0x02] ;AL = PEB.BeingDebugged
用[fs:0x30]取得peb的地址
后面一句,movzx eax,byte [eax+0x02] 说明BeingDebugged占一位
那BeingDebugged的偏移量为02,则ImageBaseAddress的偏移应该为03吧
但是在gzgzlxg大侠发表的【原创】笑解 API 函数 -- API 绝密档案系列之一(http://bbs.pediy.com/showthread.php?t=21959)中,有如下代码:
77E80B23 mov eax, large fs:18h ; TEB.NT_TIB.Self
77E80B29 mov eax, [eax+30h] ; TEB.Peb
77E80B2C mov eax, [eax+8] ; PEB.ImageBaseAddress
上面的代码通过eax+8获取ImageBaseAddress
这我就不明白了,这个地方怎么说明ImageBaseAddress的偏移量为8呀?
前后不致呀,还是我理解有误?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!