修复从内核内存中转储的Sys驱动程序的IAT

时间:2014-02-01 23:12:18

标签: kernel dump malware

我正在对一些恶意的sys驱动程序进行逆向工程。它们是打包的,所以我让它们成为人类可读的唯一方法是加载驱动程序(使用OSR Loader)并从内核内存(使用rkUnhooker)转储它们。

不幸的是,我需要重建IAT,但我找不到一个简单的分步指南来手动执行,而且我尝试过的任何工具(scylla,imprec,chimprec)似乎都不起作用。它们通过附加到进程来工作,但是(可能我错了)加载的驱动程序不一定属于进程。

所以,我的问题是:如何重建sys驱动程序的IAT - 从内核内存转储时 - 或者有哪些工具可以自动执行此操作。

1 个答案:

答案 0 :(得分:0)

我发现分析没有IAT的驱动程序的最简单的解决方法是使用波动率的moddump和impscan模块。 mod dump从内存中刻录驱动程序,并提供基址。

Impscan查找从指定基址开始的跳转表,并使用参数--output = idc,它生成一个IDA脚本文件。

我使用LordPE修改了转储的驱动程序,以更改ImageBase以匹配由volatility提供的基址。然后我在IDA pro中打开了驱动程序。驱动程序完成加载后,我转到文件>>脚本命令并从波动性的impscan中复制并粘贴IDC代码。

好多了!

虽然它并没有修复IAT,但它确实有助于静态分析。