app开发,如何让请求绕开fiddler、Charles等抓包工具

这是我的另一个问题,希望自己的某个请求不走全局proxy;发出去的应用不被别人抓包,还是要采用上面说的自己实现协议

公开api没有看到NSURLRequest和NSURLConnection不适用全局代理的,如果你自己开发不想使用NSURLSession,那么你可以使用CFNetwork.framework中CFHTTPStream.h里面的用法

没明白楼主的应用环境,讲道理,IOS本地抓包,你怎么配置都没用,除非你自己写socket吧

通过Charles抓包需要设置代理,只需要检测当前网络状态是否设置了网络代理即可:
iOS中网络请求判断是否设置代理
当然,会误伤到没使用抓包工具的用户

没用的,你还是会被破的

不一一回复了,上面snakeninny已经说了要想绕开,只有自己实现协议,用socket写吧。我说的把NSURLSessionConfiguration的connectionProxyDictionary属性设置成空字典并不能绕开抓包,因为hook仍然能够修改方法参数;我的回复目的只是为了解决某些插件开发hook请求,必须要全局走代理服务器,但一些请求,并不希望走代理,因为走代理速度会变慢。至于jjjjjjjerry1983发的文章,原理是一样的,因为NSURLSession本质就是基于CFNetwork开发的。最后说会被■■,当然什么都会被■■,微软、苹果系统都能被■■,只是时间和人员投入和产出的问题。

socket隧道vpn都可以实现,只是比较麻烦

两种方案:

  1. 通过socket自建请求头。
  2. 通过apple提供的SSL PINNING
2 个赞

一般抓包工具都是走http协议代理,走socket是比较靠谱的方法,但是管你什么协议,wireshark还是可以抓到的。再说明下有人说走ssl pinning,现在利用ssl pinning抓取https的数据都泛滥了,直接hook就可以实现ssl unpinning 。所以最后的方法是使用HTTPS+sign,保证数据不被恶意篡改和传输过程中的安全性,当然,加了sign的话校验的话就必须非常严格了

3 个赞

不用http协议,自己用套接字写,肯定抓不到