网上有几篇关于Android inline hook的文章,这篇尤其不错,还有对应的示例代码。为了方便调试看结果,我将其改为gradle工程,代码见这里。你需要将其导入的AS中,然后就可以进行native debug来调试分析原理了。
在改动后的代码中,我的目标是hook住origin_log,然后在桩函数new_log中执行自己的逻辑,并能够调用原函数。
直接来分析最重要的几步:
LDR.W PC,[?]
addr_new_log
并将原指令保存起来,这样在调用origin_log的时候,直接就跳转到new_log中。
这三部关键位置完成,就完美的将桩插入到目标函数中了。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有