一、分析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文件分析完毕
三、查看导出文件,点击选项卡Exports,会看到一个带有getSign的名字,这是so层的命名规则,双击进入
四、进去后看到的是流程图,可以按空格键切换成汇编代码
五、汇编代码也看不懂,按F5可以切换到伪C代码
六、右击代码选择Hide casts,可以隐藏那些看着比较乱的指针
隐藏后
七、加载jin.h文件帮助我们分析代码,点击File--Load file--Parse C header file
八、选择第一个参数,右击,选择Convert to struct *,选择_JNIEnv,点击OK
九、重新查看代码就比较清晰了,整个操作就是对字符串进行MD5加密
十、查看SO文件中存在的字符串,点击view--Open subviews--Strings