IPhone设置代理检查的问题

iOS开发 检测手机是否连了代理 防抓包

// 检测代理
-(void)getProxyStatus {
    NSDictionary *proxySettings = (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings());
    NSArray *proxies = (__bridge NSArray *)(CFNetworkCopyProxiesForURL((__bridge CFURLRef _Nonnull)([NSURL URLWithString:@"https://www.baidu.com/"]), (__bridge CFDictionaryRef _Nonnull)(proxySettings)));
    NSDictionary *settings = proxies[0];
    if (![[settings objectForKey:(NSString *)kCFProxyTypeKey] isEqualToString:@"kCFProxyTypeNone"]){
        //检测到连接代理
    }
} 

我看网上都是这么检查iPhone手机网络是否走代理的,因此我hook到CFNetworkCopySystemProxySettings将字典信息改成

{
		kCFProxyTypeKey = kCFProxyTypeNone
}

但是发现app好像还有其他的检测代理机制?请教大神,还有那种检测设置了代理方式?

楼主用的什么版本的os和jb?不是说 CFNetworkCopySystemProxySettings 一hook就crash的嘛

试试hook这个函数的上一层

我写demo,能hook不会崩溃的,奔溃是你搞错了吧?

这个我能hook到,但是发现他的app,没有走这个,但是他有用了另一种办法来检查代理,目前还没找到。

是不是通过检测status bar里的v图标?
我遇到crash的问题跟这位大锅一毛一样 求助 hook CFNetworkCopySystemProxySettings() 会导致应用程序崩溃
就最简单的一个return %orig都会挂,不懂了

1 Like

hook CFNetworkCopySystemProxySettings 在 iOS 10.3.3 测试是不崩溃,12.4 会崩溃,解决方案可以试试这个 https://www.ioshacker.net/thread-316-1-1.html