zl程序教程

您现在的位置是:首页 >  其他

当前栏目

安卓逆向 -- IDA基本用法

2023-03-14 22:57:17 时间

一、分析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文件分析完毕


0a2653c851af460fa595bd959398a8f1.png


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


0eacb84100b54626af849e6b562bf92a.png


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


2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png


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


4cebaac233b3433da32a72337a77fc60.png


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


6de278e6d6694ce5bb08e7e842b7e74b.png


隐藏后


7a399525ddec4b77923c464820b33738 (1).png


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


7a399525ddec4b77923c464820b33738.png


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


4cebaac233b3433da32a72337a77fc60.png

6de278e6d6694ce5bb08e7e842b7e74b.png


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


0a2653c851af460fa595bd959398a8f1.png


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


0eacb84100b54626af849e6b562bf92a.png2d65d23f6d4748949b924e4057485923.png


禁止非法,后果自负