安卓逆向 -- IDA基本用法

简介: 安卓逆向 -- IDA基本用法

一、分析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


禁止非法,后果自负


目录
相关文章
|
3月前
|
编解码 前端开发 Android开发
Android经典实战之TextureView原理和高级用法
本文介绍了 `TextureView` 的原理和特点,包括其硬件加速渲染的优势及与其他视图叠加使用的灵活性,并提供了视频播放和自定义绘制的示例代码。通过合理管理生命周期和资源,`TextureView` 可实现高效流畅的图形和视频渲染。
301 12
|
5月前
|
Android开发 Kotlin
Android经典面试题之Kotlin中Lambda表达式有哪些用法
Kotlin的Lambda表达式是匿名函数的简洁形式,常用于集合操作和高阶函数。基本语法是`{参数 -> 表达式}`。例如,`{a, b -> a + b}`是一个加法lambda。它们可在`map`、`filter`等函数中使用,也可作为参数传递。单参数时可使用`it`关键字,如`list.map { it * 2 }`。类型推断简化了类型声明。
33 0
|
7月前
|
定位技术 Android开发
Intent在Android中的几种用法
Intent在Android中的几种用法
94 1
|
7月前
|
Java Android开发 数据安全/隐私保护
安卓逆向 -- IDA基本用法
安卓逆向 -- IDA基本用法
106 0
|
7月前
|
网络协议 Shell Linux
安卓逆向 -- IDA动态调试
安卓逆向 -- IDA动态调试
107 0
|
Android开发
Android 星级评分条的基本用法
Android 星级评分条的基本用法
137 2
|
Android开发
Android 中CheckBox复选框按钮的基本用法
Android 中CheckBox复选框按钮的基本用法
161 0
|
Android开发
Android studio中的调试(Debug)按钮具体用法
Android studio中的调试(Debug)按钮具体用法
183 0
|
存储 Android开发
Android startActivityForResult和onActivityResult的基本用法
Android startActivityForResult和onActivityResult的基本用法
131 0
|
Android开发
Android 动画之Gif动画的用法(适用于Android9.0以上和以下)
Android 动画之Gif动画的用法(适用于Android9.0以上和以下)
151 0