Android Hook签名原理

昨天写了 Android签名验证——Hook签名第一步
今天研究了下Hook签名的实现,但是貌似还有点复杂,所以就不去实现了,
这里讲一下大致原理

签名获取

//大致获取签名信息流程
PackageManager packageManager=getPackageManager();//ApplicationPackageManager
PackageInfo packageInfo=packageManager.getPackageInfo(getPackageName(),PackageManager.GET_SIGNATURES);
Signature signature=packageInfo.signatures[0];
byte[] cert=signature.toByteArray();

懂得了签名信息获取,那么想Hook的话就看它从哪里来就行了。
所以此时,实现方法就很明了了——使用反射来更改当前Context下的PackageManager信息即可

  • Android中签名信息涉及到了 - 代理模式,由于自己能力有限,寻找到最小关键点比较难(就是不好找),即使找到,再通过反射一层一层去改也比较麻烦,所以我就不实现了。(因为我尝试了改里层的数据,但只是一次性的,通过外层改的话,挺麻烦,因为涉及到代理模式和很多参数构造)
  • 总之自己知道原理了,就没劲搞了

hook思路

1.通过反射更改 packageManager 代理对象//这个是肯定有效的
2.再向里缩小有效包围圈。
3.比如可以尝试修改 packageInfo 等
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值