WEB开发网
开发学院网络安全黑客技术 压缩与脱壳-脱壳高级篇 上 阅读

压缩与脱壳-脱壳高级篇 上

 2007-01-12 20:11:51 来源:WEB开发网   
核心提示: - C1E8h - C237h:IMAGE_IMPORT_DESCRIPTOR 结构部分,对应着每一个需要输入的动态链接库(DLL),压缩与脱壳-脱壳高级篇 上(7),这部分以关键字 00 结束,IMAGE_IMPORT_DESCRIPTOR structOriginalFirstThun

- C1E8h - C237h:IMAGE_IMPORT_DESCRIPTOR 结构部分,对应着每一个需要输入的动态链接库(DLL)。这部分以关键字 00 结束。

IMAGE_IMPORT_DESCRIPTOR struct

OriginalFirstThunk dd 0 ;原拆分 IAT 的 RVA

TimeDateStamp dd 0 ;没有使用

ForwarderChain dd 0 ;没有使用

Name dd 0 ;DLL 名字符串的 RVA

FirstThunk dd 0 ;IAT 部分的 RVA

IMAGE_IMPORT_DESCRIPTOR ends

- C238h - C25Bh:这部分双字(DWord) 称作“IAT”,由 IMAGE_IMPORT_DESCRIPTOR

结构中的 FirstThunk 部分指明。这部分每一个 DWord 对应一个输入函数。

- C25Ch - C2DDh : 这里是输入函数和 DLL 文件的名称。问题是,这些是没有规定顺序的:有时候 DLL 文件在函数前面,有时候正好相反,另外一些时候它们混在一起。

输入表的简介

------------

OriginalFirstThunk 是 IAT 的一部分,它是 PE 文件引导时首先要搜索的。如果存在,PE文件的引导部分将使用它来纠正在 FirstThunk IAT 部分的问题。当调入内存后,FirstThunk的每一个 Dword (包含有函数名字符串的 RVA),将被 RVA 替换为函数的真实地址(当调用这些函数时,它们调入内存的位置将被执行)。所以,只要 OriginalFirstThunk 没有被改变,基本上这里不存在输入表的问题。

下面来看我们的问题

------------------

好了,经过简单描述后,下面来看我们的问题。如果你试图运行包含上面显示的输入表的可执行文件,它不会被调入,Windows 会显示一个错误信息。为什么?很简单,因为OriginalFirstThunk 被删除了。事实上,你应该注意到,在这个输入表的每一个IMAGE_IMPORT_DESCRIPTOR 结构,OriginalFirstThunk 的内容都是 00000000h。嗯,所以我们

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

Tags:压缩 脱壳 脱壳

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