由于微信公众号推送机制的改变避免错过文章麻烦您将公众号设为星标感谢您的支持!
该工具众所周知,因为许多安全研究人员认为 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
现在运行 ghidra
先创建一个非共享项目:
项目创建完毕之后生成一个具体的目录,注意项目文件删除的时候似乎不能直接通过GUI删除,需要手动删除:
反编译完成之后选择table view然后双击文件,进入后会提示是否分析
点击确认后,可以控制相应的分析选项
crackme0x00.exe完成分析之后的整体界面如下所示,很有一股浓浓的JAVA感觉:
让我们来一起尝试解决这个挑战:单击Windows选择Definde String,然后单击指定的字符串,然后检查“密码”文本,然后推送要重定向到集合区域的地址。
关闭指定字符串窗口并打开反编译窗口,然后按_main函数查看c程序。
从c程序中我们可以看到,用户输入存储在局部变量“local 40”中。“250382”行同样存储在局部变量“local 3c”中,然后两者都传输到 strcmp。该匹配的结果与零进行比较,如果等于零,则输入文本“密码确定:)”。否则,它会切换并输入短语“无效密码!”
在这种情况下,很容易推断出密码是“250382”。然而,为了更进一步,更改了汇编部分指令,将无效密码替换为有效密码。为此,只需左键单击无效的密码汇编指令并将其替换为“dword ptr [ESP],0x404041”。现在,无论我们输入什么,我们总是会收到“密码确定”消息。
保存文件并导出软件,转到文件>导出程序
选择“二进制”作为输出格式,就完成了!
喜欢朋友可以点点赞转发转发。
免责声明:本公众号不承担任何由于传播、利用本公众号所发布内容而造成的任何后果及法律责任。未经许可,不得转载。
原文始发于微信公众号(重生者安全团队):在Linux 中使用 Ghidra 对 exe 文件进行逆向工程
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论