iOS—ipa注入网络拦截库NetworkInterceptor

实现功能:把动态库注入已经砸壳的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方式:

https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_swift_into_objective-c

为什么在.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的解决方式

https://blog.csdn.net/u011562187/article/details/79026861

你可能感兴趣的:(iOS—ipa注入网络拦截库NetworkInterceptor)