WEB开发网
开发学院网络安全黑客技术 “PE文件格式”1.9版 完整译文(附注释)(2) 阅读

“PE文件格式”1.9版 完整译文(附注释)(2)

 2007-01-14 20:15:21 来源:WEB开发网   
核心提示: TIS文件规定:IMPORTFLAGS(输入标志)TIME/DATESTAMP(时间/日期戳)MAJORVERSION-MINORVERSION(主版本号-小版本号)NAMERVA(名字的RVA)IMPORTLOOKUPTABLERVA(输入查询表的RVA)IMPORTADDRESSTAB

TIS文件规定:

IMPORTFLAGS(输入标志)

TIME/DATESTAMP(时间/日期戳)

MAJORVERSION-MINORVERSION(主版本号-小版本号)

NAMERVA(名字的RVA)

IMPORTLOOKUPTABLERVA(输入查询表的RVA)

IMPORTADDRESSTABLERVA(输入地址表的RVA)

而别处使用的对应结构是:

OriginalFirstThunk(原始第一个换长)

TimeDateStamp(时间日期戳)

ForwarderChain(中转链)

Name(名字)

FirstThunk(第一个换长)

最后一个关于输入目录的需要细讲的就是所谓的“新式”绑定(在参考书目[3]中讲述),它也可以由“绑定”工具来处理。当使用这种方式时,“时间日期戳”的所有位被置为1,并且没有中转链;此时所有输入符号的地址都将被补正,而不管它们是不是中转的。尽管如此,你还是需要知道DLL的版本,并且你还是需要将序数符号从中转符号中区分开来。为了达到这个目的,IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT(绑定输入目录项)目录被创建了。就我所见,它将不被放在节中,而是被放在头中,处于节头之后第一节之前。(咳,这不是我的发明,我只是讲述它而已!)

这个目录告诉你,每一个已使用的DLL文件的中转输出是从哪些别的DLL文件中来的。

结构是IMAGE_BOUND_IMPORT_DESCRIPTOR(绑定输入描述结构)形式的,包括(按这个顺序):

一个32位数字,“时间戳”。

一个16位数字,“OffsetModuleName(模块名字偏移量)”,是从目录开头到以0结尾的DLL文件名的偏移量;

一个16位数字,“NumberOfModuleForwarderRefs(模块中转参考的数字)”,给出这个DLL文件为它的中转使用的DLL文件数。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:PE 文件 格式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接