实现功能:把动态库注入已经砸壳的ipa中,可以拦截并修改发送的请求。
实际预览效果:
RPReplay_Final1571223364
上面视频看不了点这里视频
造成视频效果的原因:
我这里用plist文件的方式编辑拦截规则:
所以看到的情况会是一下这样:
https://www.baidu.com ——> https://www.google.com
https://www.cnbeta.com/articles/science/899571.htm ——> https://www.cnbeta.com/articles/tech/899495.htm
实现重点:
注入即生效的原理:使用目标C将代码加载到内存中
static void __attribute__((constructor)) initialize(void)
分享注入前后的ipa包:
ipa包(未注入)
链接:https://pan.baidu.com/s/1wEh0j4TPFZix9Fm4QeEYkg 密码:bxqx
ipa包(已注入拦截库)
链接:https://pan.baidu.com/s/1FZc5e4M-sEQyjXE25GTHWg 密码:fp6t
动态库:(这里不分享动态库了,下面是源码自己动手制作吧,有疑问可以问我)
https://github.com/depoon/NetworkInterceptor
以下是制作过程中会遇到Swift Framework的一些问题
框架中OC代码Import方式:
为什么在.framework中不能添加Bridging-Header.h
https://stackoverflow.com/questions/27153205/add-bridging-header-inside-framework
如何在动态框架项目中的Swift代码中访问Objective-C私有和项目标头
http://nsomar.com/project-and-private-headers-in-a-swift-and-objective-c-framework/
注入闪退日志是dyld: Library not loaded的解决方式
网友评论