一、分析apk的java层代码,发现调用了“wtf”这个so文件

package com.sichuanol.cbgc.util;
public class SignManager {
static {
System.loadLibrary("wtf");
}
public static native String getSign(String arg0, String arg1, String arg2) {
}
}

二、找到apk的libwtf.so文件,拖进IDA,出现has been finished,代表该so文件分析完毕

安卓逆向 -- IDA基本用法_so文件

三、查看导出文件,点击选项卡Exports,会看到一个带有getSign的名字,这是so层的命名规则,双击进入

安卓逆向 -- IDA基本用法_so文件_02

四、进去后看到的是流程图,可以按空格键切换成汇编代码

安卓逆向 -- IDA基本用法_Parse_03

安卓逆向 -- IDA基本用法_字符串_04

五、汇编代码也看不懂,按F5可以切换到伪C代码

安卓逆向 -- IDA基本用法_微信_05

六、右击代码选择Hide casts,可以隐藏那些看着比较乱的指针

安卓逆向 -- IDA基本用法_微信_06

隐藏后

安卓逆向 -- IDA基本用法_微信_07

七、加载jin.h文件帮助我们分析代码,点击File--Load file--Parse C header file

安卓逆向 -- IDA基本用法_微信_08

八、选择第一个参数,右击,选择Convert to struct *,选择_JNIEnv,点击OK

安卓逆向 -- IDA基本用法_微信_09

安卓逆向 -- IDA基本用法_so文件_10

九、重新查看代码就比较清晰了,整个操作就是对字符串进行MD5加密

安卓逆向 -- IDA基本用法_字符串_11

十、查看SO文件中存在的字符串,点击view--Open subviews--Strings

安卓逆向 -- IDA基本用法_so文件_12

安卓逆向 -- IDA基本用法_微信_13

禁止非法,后果自负

欢迎关注公众号:逆向有你

欢迎关注视频号:之乎者也吧

安卓逆向 -- IDA基本用法_Parse_14