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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )相关的知识,希望对你有一定的参考价值。





一、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 库 , 只是运行速度慢一些 ;

以上是关于Android 逆向Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )的主要内容,如果未能解决你的问题,请参考以下文章

Android逆向系列文章— Android基础逆向

android逆向必备工具

android逆向必备工具

android逆向必备工具

Android 逆向Android 逆向通用工具开发 ( PC 端工程分析 | 网络初始化操作 | PC 端工程核心业务逻辑 )

Android逆向-Android基础逆向(2-2)