发明名称 一种IOS上针对App的TCP/UDP流量引导的方法
摘要 本发明公开一种IOS上针对App的TCP/UDP流量引导的方法,首先拦截原生Socket的各个函数,然后将APP的TCP/UDP流量引到远端的代理服务器,其中,远端的代理服务器主要转发APP发过来的数据包,再将数据包发送到APP请求的源IP地址。本发明揭示了IOS上在App所有调用情况下都能够引导且只引导感兴趣的TCP&UDP流量的方法,从而解决了IOS上使用VPN只能进行全局代理、使用标准的Socks5代理在使用原生Socket的情况下无效的问题。
申请公布号 CN103916405B 申请公布日期 2017.02.22
申请号 CN201410168823.5 申请日期 2014.04.25
申请人 厦门享游网络科技有限公司 发明人 兰劲
分类号 H04L29/06(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 厦门市精诚新创知识产权代理有限公司 35218 代理人 方惠春
主权项 一种IOS上针对App的TCP/UDP流量引导的方法,包括以下步骤:步骤1:建立本地代理服务;具体包括以下内容:获取各个Socket函数的地址,将该函数的地址替换为构造的代理函数中的函数地址;然后创建本地代理服务线程;步骤2:构造连接函数集,该连接函数集实现跟原生Socket的各个函数的相同的功能,该连接函数集至少包括:创建与指定目的地的连接的函数my_connect、用于向一个已经连接的Socket发送数据的函数my_send、用于接收一个已经连接的Socket发送过来的数据的函数my_receive、向一指定目的地发送数据的函数my_sendto、接收指定目的地发送过来的数据的函数my_receivefrom;步骤3:将产生网络访问的应用软件记为APP,查找APP在内存当中的镜像头部,找到创建与指定目的地的连接的函数,将该函数的地址替换步骤2中构造的连接函数集的地址,并保存旧地址ori_connect;步骤4:循环步骤3,依次替换连接函数集的所有函数的地址,并保存各旧地址;步骤5:检测APP的协议是TCP还是UDP,如果是TCP,则选择方案一或者方案二;如果是UDP,则选择方案二将流量引导到代理服务器:方案一:过程1:APP向服务器发送TCP连接请求,调用my_connect函数;过程2:my_connect函数通过其函数内设置的目的IP地址和端口,与本地代理服务建立通信连接;同时,本地代理服务与目的服务器建立通信连接;过程3:APP通过my_send函数发送TCP数据;my_send函数将TCP数据发送到本地代理服务的代理服务器;过程4:本地代理服务解析接收到的TCP数据,将TCP数据转发给APP实际要发送的目的服务器;目的服务器接收到TCP数据后进行处理,返回结果数据,并把结果数据发送至本地代理服务;过程5:本地代理服务接收目的服务器发送的结果数据,并将结果数据转发至APP;过程6:APP调用my_receive函数接收结果数据;my_receive函数接收本地代理服务发送过来的数据;方案二:过程1:APP向服务器发送UDP数据,调用my_sendto函数发送UDP数据;过程2:my_sendto函数通过其函数内设置的目的IP地址和端口,与本地代理服务建立通信连接,并将UDP数据发送至本地代理服务;过程3:同时,本地代理服务与目的服务器建立通信连接;本地代理服务将UDP数据转发至目的服务器;目的服务器接收到UDP数据后进行处理,返回结果数据,并把结果数据发送至本地代理服务;过程5:本地代理服务接收目的服务器发送的结果数据,并将结果数据转发至APP;过程6:APP调用my_receivefrom函数接收结果数据;my_receivefrom函数接收本地代理服务发送过来的数据。
地址 361000 福建省厦门市思明区东浦路22号二楼M17室