黑基网 首页 学院 网络安全 查看内容

恶意软件的脱壳方法之从rwd内存中dump可执行代码

2017-9-3 00:38| 投稿: xiaotiger |来自: 互联网

摘要: 这是该系列文章的第一篇(至少我会写第二部分,希望能一直写下去),我会在这些文章中介绍不同的脱壳方法,以及我经常使用的脱壳工具和脚本。希望这些文章和工具能对你有帮助。给恶意软件脱壳的方法,很大程度上取决 ...

恶意软件的脱壳方法之从rwd内存中dump可执行代码

这是该系列文章的第一篇(至少我会写第二部分,希望能一直写下去),我会在这些文章中介绍不同的脱壳方法,以及我经常使用的脱壳工具和脚本。希望这些文章和工具能对你有帮助。

给恶意软件脱壳的方法,很大程度上取决于其所属的恶意软件家族。有时脱壳不能用通用方法,需要很大的耐心和想象力。每个人都有自己的方法。但有时可以在恶意软件中找到共同的行为,帮助我们自动完成恶意软件的脱壳。

可读可写可执行(rwe)内存块中的PE文件

在我分析过的恶意软件中,大概有60%到70%的恶意软件是将其PE模块脱壳到rwe内存块。

恶意软件的脱壳方法之从rwd内存中dump可执行代码

(用WinDbg可以切换到一个.process /i 进程,用!address查看内存空间信息)。

有时,加壳工具会把恶意软件脱壳到当前进程的内存空间;有时会将PE注入到其他进程的内存空间,或创建一个空进程,等等。但通常,它会创建rwe内存块并将PE映射进去。

用Windbg脚本找到rwe内存块中的PE文件

根据上述情况,我写了一些WinDbg脚本来扫描调试器上运行的进程,在rwe内存块中查找PE文件。我已经用这些脚本脱壳了大多数分析过的恶意软件,他们已经帮了我很多。希望对你也有帮助。

dump_injected_pe_rwemem.wdbg:该脚本会扫描调试器的进程的内存,查找映射到rwe内存中的PE文件。每发现一个PE文件,页调入PE的内存(因为有时,一些内存的页不能被映射而导致dump失败)并dump到第一个参数指定的目录中:

$$>a

Dump文件以此形式命名:

__.pedmp(包含PE的进程,PE的基地址及长度)。

dump_injected_pe_rwemem_fast.wdbg:该脚本和上一个脚本很像,但它不会在dump之前页调入PE的内存。大多数时候,它会完美的dump到PE而且速度很快。总之,我经常在调试器中配置disable swapping(禁止交换),因为这样就可以确保所有的页在内存中。该脚本像上一个脚本一样运行,得到的名字格式也一样:

$$>a

find_injected_pe_rwemem.wdbg:该脚本像上面的脚本一样查找PE文件,但只通知找到的PE,不会dump到磁盘。不需要参数:

$$>a

dump_process_symbols_to_file.wdbg:这个脚本很简单,但很有用。它会将指定进程的所有参数(例如API地址等所有WinDbg加载的参数)记录到一个文件中。文件中记录地址和参数:

$$>a

其每行是一个地址和一个参数,像这样:

恶意软件的脱壳方法之从rwd内存中dump可执行代码

如果我们dump一个PE并用IDE等反汇编程序分析,变量中通常会包含这些地址(比如,恶意软件用GetProcAddress调用接口并将指针指向一个变量或输入等)。

set_symbols_for_addresses.py:这个IDA脚本扫描被dump的PE内存,寻找一些包含特殊地址的变量,这些地址与dump_process_symbols_to_file.wdbg脚本中包含的参数相匹配(例如一个变量有一个指针指向kernel32,CreateFileA就会重命名为kernel32_CreateFileA)。这对分析dump的PE文件很有帮助。

例子

为了更好的理解怎样使用这些脚本,我制作了以下的小视频,里面有我使用这些脚本实现恶意软件脱壳和分析的三个例子:

恶意软件的脱壳方法之从rwd内存中dump可执行代码

本文由看雪翻译小组 Green奇 编译,来源@vallejocc 转载请注明来自看雪社区

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:http://www.toutiao.com/a6461120990792385037/

免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部