静态逆向工程 Shellcode - IDA 到 Ghidra

逆向工程 艾达 拆卸 二元分析 吉德拉 外壳代码
2021-07-10 14:26:35

我正在尝试按照本教程进行操作,该教程在示例中使用了 IDA。https://0ffset.net/reverse-engineering/malware-analysis/common-shellcode-techniques/

哈希:9d7e34250477acf632c6c32fc2c50d3b

在示例中,解密阶段 2 后的结果是: 在此处输入图片说明 在此处输入图片说明

当我对 Ghidra 重复相同的步骤时,我得到以下结果: 在此处输入图片说明 在此处输入图片说明

我一直在关注大会,试图看看我是否能弄清楚什么时候出错或发生了什么但还没有结果。

在搜索时,我遇到了这些参考资料:https : //c9x.me/x86/html/file_module_x86_id_139.html https://en.wikipedia.org/wiki/HLT_(x86_instruction)

如果有人能指出我正确的方向,我将不胜感激。

编辑:在 Paweł Łukasik 指出我的错误后,它起作用了: 在此处输入图片说明

1个回答

从地址开始,0x56您的所有指示似乎都已关闭。如果你仔细观察,就会发现它们与原版相差多少。

例如,在 offset 处0x58,应该是push edx字节应该是0x52,但是你有push esp哪个是0x54既然文章提到这部分是用异或(用一个数字的密钥)加密的,那么让我们看看这些值是如何关闭的

In [7]: 0x52 ^ 0x54
Out[7]: 6

所以这正是文章中提到的关键。如果我们比较其余的 off 指令,我们会注意到它们的偏离值相同。

结论 - Ghidra 中显示的这部分代码未解密,应在分析前进行预处理。