android_fiddler_Transparent Proxy 抓包并伪造数据进行测试

上一篇 / 下一篇  2013-05-24 14:53:25 / 个人分类:相关知识

android  下设置 wifi 的代理服务器利用fiddler进行抓包终于搞定了 ( 使用 Transparent Proxy )

自从手机能连公司的无线网络(TLS认证,连接方法也比较麻烦,可以参看俺的另一篇文章

http://hi.baidu.com/%BA%CD%B7%E7%D7%F4%B6%D8/blog/item/4e376847e315065d500ffe62.html

之后,怎么使用公司的proxy一直让人困扰,因为android本身没有提供proxy支持,转眼几个月过去了,终于今天有了进展。

 

首先是与公司的前辈讨论的时候,提到可以试试firefox移动版,因为使用的是与pc版同样的内核,高级设置里面应该有proxy设置,于是下载了称为fennec的大家伙,访问about:config的高级设置,按照网上的提示设置proxy的各项参数(proxy type要设为1,默认是5,可恶的magic number...),然后连接,嘿,还真行,在跳出来的对话框里面输入用户名密码之后就可以用了,不过fennec实在太重,我的milestone完全跑不动啊(最低需要512M RAM,milestone只有256M)。

 

然后,受到firefox的启发,想想opera也是自己的内核,可能也有类似设置吧,于是下载opera mobile 11,网上找了一下,访问opera:config可以打开高级设置,一试,哈,还真管用,设置基本上与firefox差不多,而且opera轻多了,跑的很爽啊。

 

再然后,本来可以就此打住了,但是想想还是不行啊,这样只是可以浏览网页了,其他的像飞信啊新浪微博之类的单独客户端程序还是不能用啊,怎么能让所有程序,包括不支持proxy的程序都能用呢?只有继续搜索,突然发现,某日本技术者的网站上貌似有解决方法:

http://denpa-shinbun.com/keitai/android-wi-fi-proxy.html

他主要是使用了一个叫ASProxy2的收费android程序,不过收费的不爽。。

 

还好他又介绍了另一个免费的方法,来自xdadevelopers:

http://forum.xda-developers.com/showthread.php?t=766569

这里需要感谢这位叫做daveba(大尾巴??)的同学,他的原理是:

==== 首先,linux世界本身有一个叫做transparent proxy的开源项目(http://transproxy.sourceforge.net/),这个东东的用途是接收传入的http等请求,包装上proxy header,再转送给事先指定好的真正的squid server(也就是proxy),反向也做拆头的工作。这样客户机的程序就不需要自己支持proxy了,只要把数据包直接发给transparent proxy就行。

==== 然后,daveba同学就下载了transparent proxy的代码,用android的NDK编译成了手机上可以运行的本地程序(不是java包),在手机上运行,并且指定真正的proxy的各种参数包括用户名密码,也就是本地有了一台transparent proxy server。

==== 最后一步,如果你的手机rom支持iptables,那么设置NAT表,把原来发送到80,443等的数据包重定向到transparent proxy的接收端口,就能工作了。

呵呵,是不是很复杂?不过好心的daveba同学已经帮我们做好了apk,直接下载安装就能用了。下载地址就在上面的链接里面,不过需要先注册成为xdadeveloper会员。

当然,目前我下载到的3.08beta版貌似只能支持80,443,5228三种端口,也就是HTTP,HTTPS以及android market端口,认证可以支持basic认证,其他更高级的认证能不能支持不知道,我这里没有环境试(ASProxy2号称支持NTLM和NTLMv2),另外socks5也可以支持。要支持其他的恐怕要改程序了。。。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 27376
  • 日志数: 29
  • 书签数: 2
  • 建立时间: 2013-05-17
  • 更新时间: 2015-01-16

RSS订阅

Open Toolbar