一、名称解释
- 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密、反汇编、系统分析等多种计算机技术,对软件的结构、流程、算法、 代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、 算法、处理过程、运行方法及相关文档等 。
- 反编译 – 指把机器码(汇编语言) → 高级编程语言,也就是通过反编译工 具对低级语言进行逆向工程,获取其源代码,比如JAVA的反编译,就是将 class文件转换成java文件 。
- APK - (全称:Android Application package,Android应用程序包)是 Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动 应用及中间件,一个包含所有代码和资源文件的压缩包 。
Apktool
- 功能: 将APK文件反编译出程序源代码、图片资源、布局文件以 及smali文件等,并能将编译后的项目重新打包成APK 。
- 功能: 将classes.dex转化成.jar文件 。
- 功能: 查看.jar源码文件 。
文章插图
注入思路流程图
四、流程详解
- 将目标apk反编译出smali1文件;
- 把目标apk解压后,使用dex2jar工具将dex文件转为jar文件;
- 通过JD打开jar文件,查看目标App业务逻辑,找到对应 注入的地方;
- 开发jar包库文件;
- 将jar包文件转为smali2文件;
- 把smali1和smali2合成为smali3文件;
- 在smali1文件中调用smali2相关代码,完成注入;
- 回编译;
- 重签名;
- 安装测试;
【Android逆向反编译代码注入APK过程思路分析】
推荐阅读
- 头皮伤口结痂反复抠的后果有哪些
- 空调清洗了反而温度还要调的更低了?空调出现什么情况必须要清洗了?
- Android,手动创建一个Hello World程序
- Chrome新版本因为跨域问题引起的页面反复刷新的解决方案
- 特斯拉|亿万富豪全美投放反特斯拉视频广告:应在全国道路上彻底封杀
- Linux Shell中单引号、双引号、反引号的解释
- 佳能EOS R5单反第二波要等4个月 或优化过热问题
- Windows|Win11连XP系统都不如的尴尬:这下反转了
- 招聘|考研究生反而不好找工作,日本人这点很认真,大家觉得应该学吗?
- 反应式编程框架设计:如何使程序调用不阻塞等待,立即响应?