进击的Android注入术《二》

继续

在《一》里,我把基本思路描述了一遍,接下为我们先从注入开始入手。

注入


分类

我们平时所说的代码注入,主要静态和动态两种方式
  • 静态注入,针对是可执行文件,比如平时我们修改ELF,DEX文件等等,相关的辅助工具也很多,比如IDA、JEB、ApkTool等等;
  • 动态注入,针对是进程,比如修改进程的寄存器、内存值等等;
动态跟静态最大的区别是,动态不需要改动源文件,但需要高权限(通常是root权限),而且所需的技术含量更高。

本质

动态注入技术,本质上就是一种调度技术。想想平时我们调试一个进程时,可以做哪些功能? 一般有下列几项:
  • 查看变量值
  • 修改变量值
  • 跟踪进程跳转
  • 查看进程调用堆栈
  • 等等
动态注入相比于普通的调试,最大的区别就是动态注入是一个 ”自动化调试并达到加载自定义动态链接库“的过程。所谓自动化,其实就是通过代码实现,在Linux上通过Ptrace就可以完成上面所有功能,当然Ptrace功能是比较原始的,平时调试中的功能还需要很多高层逻辑封装才可以实现。
在阅读下面章节之前,强烈建议阅读一下man文档,见 <
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 60
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值