PE文件格式(3)
2007-01-14 20:15:00 来源:WEB开发网核心提示: 68656C6C6F2C20776F726C640A;"hello,world"000000;paddingtoalign_written//为什么要对齐??文件对齐而已,00000000;_written现在剩下的是输入目录了,PE文件格式(3)(8),引入2个函数从
68656C6C6F2C20776F726C640A ;"hello,world
"
000000 ;paddingtoalign_written//为什么要对齐??文件对齐而已。
00000000 ;_written
现在剩下的是输入目录了,引入2个函数从"kernel32.dll",紧随2个变量。首先对齐到32个字节,文件对齐。
000000000000000000000000 ;padding
IMAGE_IMPORT_DESCRIPTOR从0x1e0开始:只有一个DLL所以只有一个数组元素。
OriginalFirstThunk ???????? ;yettofindout
TimeDateStamp 00000000 ;unbound
ForwarderChain ffffffff ;noforwarders
Name ???????? ;yettofindout
FirstThunk ???????? ;yettofindout
我们需要结束输入目录用0填充,0x1f4:
OriginalFirstThunk 00000000 ;terminator
TimeDateStamp 00000000 ;
ForwarderChain 00000000 ;
Name 00000000 ;
FirstThunk 00000000 ;
现在剩下DLL名字和2个thunks,及thunk-data,函数名。DLL名字从0x208开始:
6b65726e656c33322e646c6c00 ;"kernel32.dll"
000000 ;paddingto32-bit-boundary
originalfirstthunk数组,2个成员,起始于0x218:
AddressOfData ???????? ;RVAtofunctionname"WriteConsoleA"
AddressOfData ???????? ;RVAtofunctionname"GetStdHandle"
00000000 ;terminator
firstthunk含有同样的列表,起始于0x224:
更多精彩
赞助商链接