在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

admin 2024年3月22日13:00:11评论6 views字数 1070阅读3分34秒阅读模式

由于微信公众号推送机制的改变避免错过文章麻烦您将公众号设为星标感谢您的支持!

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程
-->进入正题啦

该工具众所周知,因为许多安全研究人员认为 Ghidra 是 IDA Pro 的主要竞争对手。Java软件中使用了Swing GUI框架,编写而成。反编译器部分是使用 C++ 创建的。Java 或 Python 可用于创建 Ghidra 插件(通过 Jython 提供)。

在这篇文章中解决crackme0x00.exe

安装步骤:当你在Kali Linux终端上输入“ghidra”时,它会提示你安装它。或者,您可以在终端上运行“sudo apt install ghidra”,按几次“y”后,安装将开始并需要一些时间。

crackme0x00.exe 文件后尝试检查这个二进制文件,在这里,很明显该文件是Windows 的可执行文件。文件可以在公众号回复获取:crackme0x00.exe

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

现在运行 ghidra

创建一个非共享项目:

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

项目创建完毕之后生成一个具体的目录,注意项目文件删除的时候似乎不能直接通过GUI删除,需要手动删除:

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

反编译完成之后选择table view然后双击文件,进入后会提示是否分析
点击确认后,可以控制相应的分析选项

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

crackme0x00.exe完成分析之后的整体界面如下所示,很有一股浓浓的JAVA感觉:
让我们来一起尝试解决这个挑战:单击Windows选择Definde String,然后单击指定的字符串,然后检查“密码”文本,然后推送要重定向到集合区域的地址。

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

关闭指定字符串窗口并打开反编译窗口,然后按_main函数查看c程序。

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

从c程序中我们可以看到,用户输入存储在局部变量“local 40”中。“250382”行同样存储在局部变量“local 3c”中,然后两者都传输到 strcmp。该匹配的结果与零进行比较,如果等于零,则输入文本“密码确定:)”。否则,它会切换并输入短语“无效密码!”
在这种情况下,很容易推断出密码是“250382”。然而,为了更进一步,更改了汇编部分指令,将无效密码替换为有效密码。为此,只需左键单击无效的密码汇编指令并将其替换为“dword ptr [ESP],0x404041”。现在,无论我们输入什么,我们总是会收到“密码确定”消息。
保存文件并导出软件,转到文件>导出程序
选择“二进制”作为输出格式,就完成了!

在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

喜欢朋友可以点点赞转发转发。

免责声明:本公众号不承担任何由于传播、利用本公众号所发布内容而造成的任何后果及法律责任。未经许可,不得转载。

原文始发于微信公众号(重生者安全团队):在Linux 中使用 Ghidra 对 exe 文件进行逆向工程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月22日13:00:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   在Linux 中使用 Ghidra 对 exe 文件进行逆向工程http://cn-sec.com/archives/2594491.html

发表评论

匿名网友 填写信息