反编译so文件(IDA_Pro)

目录

概述

下载

安装

使用

退出(默认即可)


概述

  安卓应用程序的开发语言是java,但是由于java层的代码很容易被反编译,而反编译c/c++程序的难度比较大,所以现在很多安卓应用程序的核心部分都使用NDK进行开发。使用NDK开发能够编译c/c++程序,最终生成so文件。而so文件是一个二进制文件,我们是无法直接分析so文件的,所以这里需要用到一个反编译工具IDA Pro。IDA Pro能够对so文件进行反汇编,从而将二进制代码转化为汇编语言,利用IDA Pro神奇的F5功能还能将汇编语言反编译成c/c++程序。

下载

链接: 百度网盘-链接不存在 密码: tvsn

备用链接:百度网盘 请输入提取码 密码:kljo

反编译so文件(IDA_Pro)_第1张图片

下载IDA_Pro_v7.0_Portable.zip即可。

安装

直接解压缩即可。

注意:绿色版解压缩路径不要含有中文或者路径长度不能超过72字符。(python模块自身的bug)

反编译so文件(IDA_Pro)_第2张图片

使用

双击ida64.exe,打开软件IDA Pro

本来按照我的理解,如果想要反编译的so文件是在arm64-v8a目录下,则只能打开ida64.exe文件;如果想要反编译的so文件是在armeabi目录下,则只能打开ida.exe文件。但是我这边的测试结果时:

ida64.exe:打开arm64-v8a目录下的so文件正常(可以找到调用的方法名),打开armeabi目录下的so文件不正常(无法找到调用的方法名);

ida.exe:打开arm64-v8a目录下的so,打开armeabi目录下的so文件都不正常(无法找到调用的方法名);

所以我目前的操作是双击打开ida64.exe,然后反编译arm64-v8a目录下的so文件!

反编译so文件(IDA_Pro)_第3张图片

反编译so文件(IDA_Pro)_第4张图片

反编译so文件(IDA_Pro)_第5张图片

反编译so文件(IDA_Pro)_第6张图片

将so文件拖拽到上面的空白区域,选择”ELF64 for ARM64(Shared object)[elf64.ldw]”选项,然后再点击ok按钮

注意,因为我双击打开的是ida64.exe,所以需要打开的so文件是arm64-v8a目录中的,不能是armeabi目录中的。(以HelloWorld项目为例)

反编译so文件(IDA_Pro)_第7张图片

等待一段时间后,我们就能看到反汇编so文件所得到的汇编代码了。

反编译so文件(IDA_Pro)_第8张图片

定位到想要查看的函数(一般先定位到项目中调用的第一个函数,比如HelloWorld项目中的stringFromJNI方法

反编译so文件(IDA_Pro)_第9张图片

反编译so文件(IDA_Pro)_第10张图片

按键盘上的F5,就可以将汇编代码转换为C代码

反编译so文件(IDA_Pro)_第11张图片

反编译so文件(IDA_Pro)_第12张图片

源代码如下:

反编译so文件(IDA_Pro)_第13张图片

退出(默认即可)

反编译so文件(IDA_Pro)_第14张图片

你可能感兴趣的:(android,反编译,逆向,so,c,工具)