近年来,恶意软件越来越多的使用自己编写的加密算法。这就是为什么很多情况查壳工具并没有检测出壳,但恶意代码还是被混淆的原因,下面,我们就来学习下如何动态解密恶意软件中的payload。样本:61c19e7ce627da9b5004371f867a47d3,下载地址:https://app.any.run/tasks/e163502e-3334-46d9-aeb7-e5c925b64af7。
使用查看工具检测样本,提示是未知壳,黑客还为了伪装将节段篡改成UPX的名称。
使用IDA分析样本,发现一大段灰的,很大概率这一段就是被加密的恶意代码。
好,接下来就用x32dbg进行动态解密,把样本拖入x32dbg,按一下F9,会自动断在入口点的位置。
这里讲一个小技巧,恶意软件解密代码之前一般会调用VirtualAlloc申请内存,或调用VirtualProtect修改内存属性,所以,我们输入命令bp VirtualProtect、bp VirtualAlloc下断点,这样程序大概率可以断在解密代码的附近。