转载

利用动态库注入调试SDK

剑乃利器,可伤敌,亦可伤己,皆由持之者定夺。

动态库注入一般情况下使我们要防范的安全漏洞。要通过技术手段把这个漏洞补上。防止发生,第三方注入修改我们的业务逻辑,完成他们想做的事情。这是利剑伤己的一面,同时我们也可以用这种技术来做一些有价值的事情。比如应用在SDK调试当中。

当SDK提交给宿主之后,一旦发现问题,调试将会是一个噩梦。不能打断点,不能改代码验证修改是否修正了问题。宿主那边只有我们提供的framework或者静态库文件。而宿主也不能把他们的代码权限开放给我们。两头受堵。于是,我们就想,要是能像正常调试开发一样,提示一个集成之后之后的SDK那有多好!!!

于是,开始调研这个事情的可行性。主要的研究方向放在了动态库注入上面,经过验证:我们可以利用宿主提供的集成包,对其进行动态库注入,而在动态库中,加入hook的代码,通过hook代码来打断点,打log,修改逻辑,来完成调试的工作。

注入的事情可以详细参考文章: 一步一步实现iOS微信自动抢红包(非越狱)

原文  http://dzpqzb.com/2016/08/16/debug-sdk-with-injection.html
正文到此结束
Loading...