接上节课内容

安卓逆向 -- Frida环境搭建(HOOK实例)

安卓逆向 -- FridaHook某车udid的加密值

安卓逆向 -- FridaHook分析3DES加密值

一、上节课我们找到了get3deskey函数来自原生函数

安卓逆向 -- SO文件逆向分析_3d

二、解压apk文件,去lib文件里找到libnative-lib.so文件

安卓逆向 -- SO文件逆向分析_3d_02

三、将so文件拖入ida进行分析,当输出框出现finished,说明已经加载完毕

安卓逆向 -- SO文件逆向分析_3d_03

四、在导出函数输入get3deskey,即可查找到该函数

安卓逆向 -- SO文件逆向分析_so文件_04

五、进入后,可以按空格键,切换视图,这里可以很清楚看到key

appapiche168comappapiche168comap

安卓逆向 -- SO文件逆向分析_3d_05

六、按F5快捷键可以反编译成伪C代码,但貌似看不懂是啥

安卓逆向 -- SO文件逆向分析_so文件_06

七、点击fiel,选择load file,选择Parse C header file,导入Jni.h文件,帮助我们解析

安卓逆向 -- SO文件逆向分析_3d_07

安卓逆向 -- SO文件逆向分析_3d_08

八、Jin学习中,我们知道so里面的函数,第一个参数是JNIEnv类型,所以我们修改一下,右击第一个参数类型,选择Convert to struct,选择JNIEnv

安卓逆向 -- SO文件逆向分析_so文件_09

安卓逆向 -- SO文件逆向分析_so文件_10

九、识别出了部分函数

安卓逆向 -- SO文件逆向分析_安卓逆向_11

十、隐藏转换,右击选择Hide casts,也会让代码起来比较清晰

安卓逆向 -- SO文件逆向分析_安卓逆向_12

安卓逆向 -- SO文件逆向分析_so文件_13

十一、双击进入DES3_KEY,也可以看到常量

安卓逆向 -- SO文件逆向分析_so文件_14