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

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

b8f4dcfb35f1941be9d4fd2422f12dc2.jpeg
e154f8678399f0dc3ed84f68bd63afd5.jpeg -->进入正题啦 bbd93b69daa7d28220eff94f07f92a00.jpeg3667bbaa07d4a0019888898c5ed58eb9.jpeg

该工具众所周知,因为许多安全研究人员认为 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

7f848a00ca66a1a4d8ea166cfa99224a.jpeg

现在运行 ghidra

先创建一个非共享项目:

586b2a1be66da3a97f31a3fa4764b619.jpeg

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

9fdaead1b39dc2c0990e1fe4cf3484f0.jpeg

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

4889ec6b6590ba5a99195ddb98cd4479.jpeg

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

365949879992039fb71528be0d20572f.jpeg

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

4bc3d8f2eebf601b1c62716215215057.jpeg

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

f0dd4b11daa29b5ba8a24af814fffff2.jpeg

喜欢朋友可以点点赞转发转发。58203c28dc3da6442f8faeb307249913.jpeg0d7e0b7862def40a6530a0632da543e1.jpegc219281be2d1afdd1fee6c4706463a43.jpeg

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

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重生者安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值