java反编译工具_Android逆向反编译代码注入APK过程思路分析

一、名称解释

  • 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密、反汇编、系统分析等多种计算机技术,对软件的结构、流程、算法、 代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、 算法、处理过程、运行方法及相关文档等。
  • 反编译 – 指把机器码(汇编语言) → 高级编程语言,也就是通过反编译工 具对低级语言进行逆向工程,获取其源代码,比如Java的反编译,就是将 class文件转换成java文件。
  • APK - (全称:Android application package,Android应用程序包)是 Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动 应用及中间件,一个包含所有代码和资源文件的压缩包。

二、反编译工具

Apktool

  • 功能: 将APK文件反编译出程序源代码、图片资源、布局文件以 及smali文件等,并能将编译后的项目重新打包成APK。

dex2jar

  • 功能: 将classes.dex转化成.jar文件。

JD-GUI

  • 功能: 查看.jar源码文件。

三、注入思路

48a6cc7849cdc94bfa3f8974c58b14ef.png

注入思路流程图

四、流程详解

  1. 将目标apk反编译出smali1文件;
  2. 把目标apk解压后,使用dex2jar工具将dex文件转为jar文件;
  3. 通过JD打开jar文件,查看目标App业务逻辑,找到对应 注入的地方;
  4. 开发jar包库文件;
  5. 将jar包文件转为smali2文件;
  6. 把smali1和smali2合成为smali3文件;
  7. 在smali1文件中调用smali2相关代码,完成注入;
  8. 回编译;
  9. 重签名;
  10. 安装测试;

综上:通过反编译工具,再结合注入流程,即可将我们想要的功能注入到APK安装包,实现代码注入的目标,如果你想学习更多相关知识,点击文章左下角「了解更多」学习吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值