导入表内注入代码(二)
2007-03-17 21:59:50 来源:WEB开发网4.防止反向(工程)
使用复杂的API重定向技术来重建一个导入表是极其困难的。有时像Import REConstructor一样的工具,图 10,将难于重建导入表,重定向特别专长于多态代码(polymorphism code)image。在反向工程世界里Import REConstructor是一个著名的工具;它会挂起目标进程以便于捕获导入信息。如果你像一个明喻(simile)JMP一样做一个重定向,肯定会用该工具让它被重建,然而如果我们将Function名称加密并用在内存中的多态代码捆绑之,它(译注:该工具)将对获得正确的导入表产生困惑。我们通过这个技术发布我们的EXE protector,Native Security Engine [6]是一个依此方法的packer。它有一个x86代码生成器附加一个metamorphism(变态或变体)引擎,两者共同帮助建立一个复杂的重定向结构。
图 10 - Import REConstructor, MackT/uCF2000
图11展示了在EXE protectors中的导入保护的主要策略。其中一些对虚拟Win32库(virtual Win32 libraries)用到重定向。举个例子,它们有Kernel32、 User32、和 AdvApi32虚拟(virtual libraries)库。它们使用它们自己的库以防止被黑掉或安装它们的虚拟机。
图 11 - Import Table Protection
通过这种技术来切断外界访问是可以达到目标的。正如你所看到的,MoleBox行为相同,它过滤了FindFirstFile()和FindNextFile()以在打包文件内部合并TEXT文件和JPEG文件。当程序意图从硬盘找到一个文件,它将被重定向到内存。
5.运行时导入表注入
更多精彩
赞助商链接