今天介绍一个IDA脚本的使用方法——非虫大佬的Jni_helper https://github.com/feicong/jni_helper 。
源代码是采用py2写的,如果你是py3的环境可以稍微修改,也可以直接使用我网盘的文件。
链接:https://pan.baidu.com/s/1rzfceTY0x9UbdOoza4zN1g
提取码:eca1
操作步骤
1.Jadx反编译Apk,选择 文件-全部保存;生成sources文件夹和resources文件夹,sources文件夹下即为Apk 反编译得到的Java伪代码,这是我们接下来需要使用到的文件夹。
2.目光转到make_sig.py文件,这个脚本可以得到Apk中所有native函数的详细信息(函数签名),原理是遍历sources文件夹下全部目录的内容,制定规则正则匹配native函数,最后将匹配到的函数列表存储在本地。这个脚本只有一个函数,第一个参数为sources文件夹路径,比如"C:\decompile\t4\sources",参数二是列表内容在本地存储的位置,比如“test.txt”/“C:\decompile\t4\test.txt”
3.打开IDA,选择File-Script File,导入jni_helper.py文件,jni_helper是真正起作用的ida脚本,导入后会提示加载文件,这个时候把步骤二中生成的文件加载进去即可。
4.F5反编译代码,会发现jni_helper脚本已经自动帮我们做了一些准备工作。
IDA作为一个强大的反编译工具,提供了多种方式来拓展和定制化功能,常见的就是脚本和插件,脚本主要提供了IDC脚本和Python脚本两种方式,我们当前实践的脚本就是采用后者编写的。除此之外IDA还有很多好用的插件,我们之后会一一介绍其原理和操作,你也可以通过这个汇总博客了解大量的IDA插件 https://xs3c.co/archives/541。