ida反编译so文件教程

ida反编译so文件教程

当我们在做逆向工作时,总会遇到需要查看某个 so ida反编译so文件教程 文件的情况,甚至可能需要对其进行一些微小的修改。这时候,我们就需要来点反编译的魔法了。

不过别担心,只要你掌握了 IDA Pro 和 010 Editor 这两个工具,就能轻松愉悦地完成反编译和修改工作啦。

IDA Pro 是一款由意大利公司 Hex-Rays 开发的反汇编工具,其功能十分强大。首先,它支持多种处理器架构,包括 x86、ARM、MIPS 等。其次,它可以对二进制文件进行静态分析,还可以通过调试器进行动态分析。此外,IDA Pro 还支持多种插件,可以帮助用户更加高效地进行反汇编和分析。

010 Editor 是一款十分强大的二进制文件编辑器,主要用于分析、编辑和处理任意格式的二进制文件。

当我们需要查看 so 源码时,可以使用 IDA Pro 工具对 so 文件进行反编译,然后就能阅读源码了。如果涉及到修改需求时,则可以先在 IDA Pro 工具里找到对应代码的 ,然后使用 010 Editor 打开 so 文件,以汇编地址作为关键字进行查找,找多对应的代码,直接修改即可。

由于 010 Editor 工具里是以十六进制展示代码,所以修改时,需要特别注意,不要改错地方或者键入错误的内容,否则会导致 so 文件执行异常。

  • IDA Pro 下载地址:

Mac:https://bianchenghao.cn/mac/734.html?id=NzY4OTYwJl8mMjcuMTg2LjEyNS40OQ==

Windows:https://bianchenghao.cn/soft/2059.html?id=MjkzODQ%3D

Mac 的直接拖拽安装即可:
ida反编译so文件教程

  • 010 Editor 下载地址:
    https://www.sweetscape.com/download/010editor/

1. 利用 IDA Pro 反编译 so 文件

1.1 将输入法切换到系统默认的 ABC

在开始正式的反编译工作前,需要做一件重要的事情,就是把输入法切换到系统默认的 ABC。

三方的输入法和 IDA Pro 有兼容性问题,会导致崩溃,所以,使用 IDA Pro 期间,输入法只能是在 ABC 模式下,否则会出现如下崩溃提示:

ida反编译so文件教程

1.2 确认 so 文件是 32 位还是 64 位

在使用 IDA 反编译 so 之前,需要确定下自己的 so 文件是 32 位的还是 64 位的,以便启用不同的 IDA 程序进行反编译。确认的方式可以使用如下命令:


输出信息:
ida反编译so文件教程
可以看到,我这里的 so 文件是 32 位的。

1.3 启动 IDA Pro

我们在 mac 上安装好了 IDA Pro 后,是不能直接软件图标打开它的,,正确的启动方式如下:

ida反编译so文件教程

右键 ,选择“显示包内容”

ida反编译so文件教程

之后按如下提示进行选择:

ida反编译so文件教程

首次进入时,选择 即可:

ida反编译so文件教程

这是打开之后的界面:

ida反编译so文件教程

直接把 so 文件拖拽进来, ,就可以开始反编译了:

ida反编译so文件教程

这里选择允许即可:

ida反编译so文件教程

大概等待一会,就反编译完成了!

此时我们看到界面左侧有一个 的窗口,这里面会列出所有的函数名字,我们可以根据需要查看,也可以直接检索,检索的方式是右键,选择“Quick filter”,然后输入函数名字即可。

ida反编译so文件教程

我搜索了一个名叫 的函数:

ida反编译so文件教程

然后双击第一个搜索结果,再双击下图红框圈出来的地方,即 sub_1D508:

ida反编译so文件教程

进入 sub_1D508 后,直接按 F5 键,即可将其转化为 C 语言实现的伪代码,然后就可以正常阅读了:

ida反编译so文件教程

以上就是反编译的操作流程。

2. 利用 010 Editor 修改 so 文件

下面我们来实践下,修改代码中的某个值。比如我想修改刚刚代码中第 43 行的 return 返回值,将 2 改为 0。

修改方式是,先用鼠标选中需要修改的值 ,然后在页面底部查看它的地址: ,我们需要记住这个地址。

ida反编译so文件教程

此时,我们切换到 IDA View-A 界面,在里面查找到 ,右侧的 就是我们需要修改的值。

ida反编译so文件教程

我们同样用鼠标选中 ,然后切换到 Hex View-1 窗口,查看其十六进制的表示:

ida反编译so文件教程

我们看到对应的 也被选中了, 就是我们要修改的值的十六进制表示。

我们把整个十六进制串拷贝一下,如红框圈起来所示:

ida反编译so文件教程

然后用 010 Editor 打开 so 文件,用 ctrl+F 调出搜索框,粘贴刚刚拷贝的十六进制串,定位到对应的代码,然后将 改为 。

ida反编译so文件教程

修改完后,修改后的值会显示为红色。此时记得 保存,然后可以关掉工具。

此时,我们使用 IDA Pro 再次打开 so 文件,找到刚刚的代码,发现 2 已经变成了 0。

ida反编译so文件教程

以上就是修改的流程。

本文只是演示了修改静态资源值,如果你对汇编语言很熟悉,可以直接修改代码逻辑。

今天的文章
ida反编译so文件教程分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/131654.html

(0)
编程小号编程小号
上一篇 2024-09-10 18:17
下一篇 2024-09-10 18:46

相关推荐