代码注入 api hook
静态注入
动态注入
大多数安全软件都是通过代码注入实现的
mavell 安全拦截 费用管理 蒋佳文
静态注入
通过反编译应用注入Smali代码,负责加载和执行自己所写的函数,回编译回去后产生新的应用,实现修改功能;
破解游戏(拇指王) 植入广告
动态注入
Overview
预备知识介绍-ptrace,api hook
动态代码注入详解
动态代码注入的举例
Sample:android安全软件广告拦截
传统
在/etc/host添加所有广告域名指向本地
优点:
实现容易;
维护成本低
一个开关屏蔽所有广告;
缺点:
可能影响客户,导致某些网站和应用异常;会修改系统文件,卸载后无法恢复;通用性差,可能导致一些手机原host受损
导致ota升级失败
新的
动态代码植入,LBE,金山毒霸,360
优点:
可以选择要屏蔽的应用
事后补救,资源已下载,不显示
通用性好,对系统无任何影响,不用修改系统文件就可以获取一些权限
给予软件更高的权限处理事件
能够达到一些特殊的目的:例如电话呼出拦截,广告拦截和游戏破解等。
安全拦截 权限管理
实现一些本来需要修改framework层次才能够完成的功能(打patch)
缺点:
实现比较困难;
维护成本高,需要较高水平工程师;
也需要root权限