一种Android平台实现应用内网络透明代理的系统及方法技术方案

技术编号:17146599 阅读:34 留言:0更新日期:2018-01-27 17:37
本发明专利技术公开了一种Android平台实现应用内网络透明代理的系统及方法,其中方法包括以下步骤:S1:在APP启动后使用inline hook方法,在App内部对标准库libc.so进行hook;S2:在APP发起网络访问准备进行TCP三次握手时,更改TCP三次握手的源站IP和源站端口为透明代理的目标IP和端口,调用标准系统调用__NR_connect通知Android系统下Linux内核完成TCP三次握手;S3:完成与代理服务器TCP连接后,将源站服务器IP、源站服务器端口、token信息放入到发送内容中,调用标准系统调用__NR_send、__NR_sendto、__NR_write通知Android系统Linux内核完成内容发送;S4:代理服务器从发送内容中获取源站服务器IP、源站服务器端口和token信息。通过本方法后,能够满足App透明代理在应用内部、可控性好、可扩展性好的需求。

A system and method for realizing transparent agent in application network with Android platform

【技术实现步骤摘要】
一种Android平台实现应用内网络透明代理的系统及方法
本专利技术涉及网络透明代理,具体涉及一种Android平台实现应用内网络透明代理的系统及方法。
技术介绍
现有针对Android进行透明代理的方法有多种,主要分为正向代理和反向代理。正向代理主要方式有网卡设置HTTP代理(全局)和App编程设置代理(应用内);反向代理主要方式有VPN方式(全局和应用内)和Xposed方式等。在Android上的App需要在应用内部透明代理转发或定向业务场景中,使用目前的代理方法部分会使所有App生效、部分要求对App客户端和服务端进行大量改造,其次现有方案中代理作为中立角色对扩展性和定制需求难以满足,现有方案的由于原理上的限制,难以满足App厂商成本低、可控性好、可定制、便于扩展的要求。
技术实现思路
本专利技术的目的在于提供一种Android平台实现应用内网络透明代理的系统及方法,解决现有方案的由于原理上的限制,难以满足App厂商成本低、可控性好、可定制、便于扩展的要求的问题。为解决上述的技术问题,本专利技术采用以下技术方案:一种Android平台实现应用内网络透明代理的系统,包括通过网络连接的本文档来自技高网...

【技术保护点】
一种Android平台实现应用内网络透明代理的系统,其特征在于:包括通过网络连接的智能终端与代理服务器,所述智能终端用于:在APP启动后使用inline hook方法,在APP内部对标准库libc.so进行hook;在APP发起网络访问准备进行TCP三次握手时,更改TCP三次握手的源站IP地址和源站端口为透明代理的目标IP地址和端口,然后调用标准系统调用__NR_connect通知Android系统下Linux内核完成TCP三次握手;完成APP与代理服务器TCP连接后,将源站服务器IP地址、源站服务器端口、token信息放入到发送内容中,调用标准系统调用__NR_send、__NR_sendt...

【技术特征摘要】
1.一种Android平台实现应用内网络透明代理的系统,其特征在于:包括通过网络连接的智能终端与代理服务器,所述智能终端用于:在APP启动后使用inlinehook方法,在APP内部对标准库libc.so进行hook;在APP发起网络访问准备进行TCP三次握手时,更改TCP三次握手的源站IP地址和源站端口为透明代理的目标IP地址和端口,然后调用标准系统调用__NR_connect通知Android系统下Linux内核完成TCP三次握手;完成APP与代理服务器TCP连接后,将源站服务器IP地址、源站服务器端口、token信息放入到发送内容中,调用标准系统调用__NR_send、__NR_sendto、__NR_write通知Android系统下Linux内核发送内容到代理服务器;所述代理服务器用于:从收到的系统终端的发送内容中获取源站服务器IP地址、源站服务器端口和token信息,并从发送内容中去除源站服务器IP地址、源站服务器端口和token信息后转发到源站服务器对应的IP地址和端口上,完成代理鉴权、代理访问源站功能。2.一种Android平台实现应用内网络透明代理的方法,其特征在于:包括以下步骤:S1:在APP启动后使用inlinehook方法,在APP内部对标准库libc.so进行hook;S2:在APP发起网络访问准备进行TCP三次握手时,更改TCP三次握手的源站IP地址和源站端口为透明代理的目标IP地址和端口,然后调用标准系统调用__NR_connect通知Android系统下Linux内核完成TCP三次握手;S3:完成APP与代理服务器TCP连接后,将源站服务器IP地址、源站服务器端口、token信息放入到发送内容中,调用标准系统调用__NR_send、__NR_sendto、__NR_write通知Android系统下Linux内核发送内容到代理服务器;S4:代理服务器从收到的发送内容中获取源站服务器IP地址、源站服务器端口和token信息,并从发送内容中去除源站服务器IP地址、源站服务器端口和token信息后转发到源站服务器对应的IP地址和端口上,完成代理鉴权、代理访问源站功能。3.根据权利要求2所述的Android平台实现应用内网络透明代理的方法,其特征在于:所述S1步骤中,hook的方法包括connect、send、sendto、write、ioctl,在App内部对标准库libc.so进行hook后调用新的自定义的hook方法,名称分别为new_connect、new_send、new_sendto、new_wri...

【专利技术属性】
技术研发人员:冯光伟袁家权李红
申请(专利权)人:上海哎媲媲网络技术有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1