【Android 逆向】Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )

2023-03-29 18:22:16 浏览数 (1)

文章目录

  • 一、Android 逆向方法
    • 1、静态逆向解析
    • 2、函数调用分析
    • 3、动态运行跟踪
    • 4、运行日志分析
    • 5、文件格式解析
    • 6、敏感信息分析
    • 7、网络信息监控
    • 8、软件动态调试
    • 9、环境伪装模拟

一、Android 逆向方法


1、静态逆向解析

静态逆向解析 : 静态解析 APK 安装文件 , 反编译 APK 文件 , 然后反汇编 Dex 字节码文件 , SO 动态库文件 ; 分析这些二进制文件细节 ;

2、函数调用分析

函数调用分析 : 研究应用中调用了哪些函数 , 如 : 资源或目录中某些文件被加密了 , 需要解密操作 , 尝试分析 Java / OpenSSL 等的加密解密 API 方法 , 拦截这些方法 , 获取相应的秘钥 ; 获取到秘钥后 , 可以自己实现一个算法 , 将加密文件还原成原始数据 ;

3、动态运行跟踪

动态运行跟踪 : 将程序运行起来 , 运行中动态分析数据 ; 如 : 做一些函数拦截 , 拦截 Java 的字符串 String 的 构造函数 或 追加函数 , 按照时间顺序 , 记录函数的结果 , 然后找到关键信息的拼接过程 , 如 : 访问网络时 , 必然拼接 URL 地址 , 这些都是字符串 , 比较容易分析 ;

4、运行日志分析

运行日志分析 : 针对一个几百兆的大型的程序 , 一般不会上来就进行静态分析 , 很难接近应用的核心部分 ; 这种情况下 , 优先监控这个应用的运行日志 , 执行应用相关操作 , 查看哪些操作会产生哪些日志 , 之后根据日志信息 , 定位对应的代码位置 , 然后进行 静态 / 动态分析 ;

5、文件格式解析

文件格式解析 : 解析编译后的 SO 等格式的文件 , 提取重要的信息 , 如解析 SO 动态库 , 提取其中的 jni 入口方法 , 然后到 Dex 字节码文件中查询对应的 jni 方法调用 ; 有时候可以获取代码中的以明文形式声明的 密码 , 秘钥 , 字符串 相关信息 ; 解析 SO 动态库中的所有字符串信息 , 通过观察特征 , 位数 , 可以知道哪些字符串可能是秘钥字符串 , IP 地址 , URL 地址 , 域名 等 ;

6、敏感信息分析

敏感信息分析 : 分析 敏感的 函数名 , 类名 , 字符串 , 文件名 ;

7、网络信息监控

网络信息监控 : 针对有网络功能的应用 , 应用需要与服务器进行交互 , 如果网络交互没有进行防护措施 , 如使用 HTTP 链接 , 或 未加密数据 等 , 很容易被截获明文数据 , 这些数据都需要进行二次加密 ; 网络游戏 , 如果被截获了数据 , 后果是灾难性的 , 外挂就做出来了 ;

8、软件动态调试

软件动态调试 : 在调试环境中 , 调试软件 , 可以设置断点 ; 通过修改寄存器跳过调试检测 ;

9、环境伪装模拟

环境伪装模拟 : 使用 PC 电脑机上运行 Android 系统 , 应用为了避免在 PC 上运行 , 删除了 x86 架构的 so 动态库 ; 使用 雷电模拟器 等 模拟器 , 可以在 PC 电脑上运行 ARM 库 , 只是运行速度慢一些 ;

0 人点赞