zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

【Android 逆向】Android 逆向用途 | Android 逆向原理

Android原理 逆向 用途
2023-06-13 09:17:58 时间

文章目录

一、Android 逆向用途


Android 逆向用途 :

  • 软件防护 : 根据逆向的方法针对性的开发防护策略 ;
  • 算法研究 : 在没有源码的前提下 , 通过反编译 , 反汇编 , 拿到 Smali 代码 , 研究其产品的算法 , 实现途径 ;
  • 接口分析 : 接入一个没有源码的第三方库 , 无法进行调试 , 出现问题后 , 可以使用逆向的方法 , 查找问题原因 , 解决相关问题 ; 找到问题后 , 修改汇编代码 , 然后重新打包 ;
  • 数据采集 : 分析应用的数据 , 获取该应用的更新内容 , 运营信息 , 在 APP 中可以拿到一些非公开的数据 ;
  • 应用破解 : 单机游戏玩家需求 , 游戏修改器 , 或者应用停止运营 , 没有付费渠道 , 可以进行破解使用 ;
  • 调试分析 : 应用打包 , 混淆 , 加固 后上传到应用市场 , 如果某个分发渠道版本出现问题 , 可能就需要调试分析具体的这个 APK 包的问题 ; 结合源码与渠道包进行逆向分析, 查找问题原因 ;

二、Android 逆向原理


Android 逆向原理 :

  • 静态分析 : 反编译 , 反汇编 , 从 .so , .a , .dex 等函数库中提取相应信息 , 主要是分析静态文件二进制数据 ;
  • 动态分析 : 将程序运行起来 , 运行中动态分析数据 ; 如 : 做一些函数拦截 , 拦截 Java 的字符串 String 的 构造函数 或 追加函数 , 按照时间顺序 , 记录函数的结果 , 然后找到关键信息的拼接过程 , 如 : 访问网络时 , 必然拼接 URL 地址 , 这些都是字符串 , 比较容易分析 ;
  • 结合分析 ( 使用最多 ) : 先通过静态分析 , 确认一些信息 , 然后通过 动态分析 , 进一步进行调试 ;

静态分析 和 动态分析 , 对于简单防护的应用 , 是有效的 ;

如果应用做了很复杂的防护 , 需要使用结合分析 ;