Skip to content

Latest commit

 

History

History
87 lines (73 loc) · 5.45 KB

20160907-又发现一个调试工具.md

File metadata and controls

87 lines (73 loc) · 5.45 KB

#20160907-今天新用的远程调试工具

调研背景:

  1. 自从用了fiddler之后感觉远程调试好方便啊。 但是后来一直在微信里开发,感觉微信调试就不那么方便了。
  2. 还好, 终于, 微信推出了微信开发者工具,我相信对于做微信网站开发的人来说,这个真是一个福音,大大提高了微信网页开发的效率。
  3. 再后来, 感觉微信开发者工具只能方便的看微信的东西, 那app的呢?一般的移动端浏览器的呢?
    于是,今天又琢磨了下spy-debugger。

spy-debugger

1.introduction

官方对自己的定义:

微信调试、各种WebView样式调试、手机浏览器的页面真机调试。便捷的远程调试手机页面、抓包工具,支持:HTTP/HTTPS

2.feature

  1. 页面调试+抓包
  2. 操作简单(是怎么个操作简单法呢?) 发现还是不那么简单的,至少不是特别简单。比如ios需要自己安装一个证书。
    不过总体来说已经算不错了。
  3. 支持HTTPS。
  4. spy-debugger内部集成了weinre,node-mitmproxy,AnyProxy
  5. 自动忽略原生App发起的http是请求(不大明白,这个为什么要特意忽略呢?),只拦截webview发起的https请求。对使用了SSL pinning技术的原生App不造成任何影响。
  6. 可以配合其它代理工具一起使用(默认使用AnyProxy)(一开始为什么要配合其它代理工具呢?现在还不大明白这个应用场景)
    其实,我对spy-debugger宣称的自己内部集成的这几款软件也很感兴趣,不过除了weinre之前用过,其他的都没用过。
    而且,就在对其他的代理工具了解的过程中,我自己就解惑了。比如spy-debugger的web界面,用的就是anyproxy的。所以说这种结合其实挺好的。类似于vue和weex结合后俩者其实就是互相促进了。
    那就来看看这些东东到底身怀什么宝藏吧。

weinre

先来放个weinre的视频

introction

weinre
weinre这个单词其实是weinre is WEb INspector REmote.的简写。 weinre是apache开发出来的软件,在远程调试界,也算是知名度颇高了。 因为在weinre诞生在这个世界的时候,那会儿业界还没有什么远程调试工具。(这一点来自apache官方网站,我并没有自己去实际比较过类似的远程工具谁是first) weinre是一个web页面的调试工具。有点像firebug和Web inspector(chrome的调试工具),不过和这俩个工具不同的地方是,weinre就是专门为了远程调试而设计的。 它允许你在手机这样的设备上去远程调试web页面。 weinre支持:

  • Android
  • iOS
  • Firefox OS
  • Windows phone 尤其在当初还没有什么微信开发者工具这个方便的工具的时候。 我以前也曾经用过。后来想到要给每个页面都这么加js,而且用起来也感觉不方便,就没有用这个了。

weinre是需要给每个页面都要加一个对weinre提供的一个js文件的引用的。而spy-debugger很好的解决了这个痛点。它自动给webview里的页面做拦截,给每个页面都自动加了对这个js的引用(我很喜欢,提供公共服务的人把麻烦的事情自己做,让别人去爽吧!)


node-mitmproxy

node-mitmproxy

node-mitmproxy是一个基于nodejs,支持http/https的中间人(MITM)代理,便于渗透性测试和开发调试。

渗透性测试?不大懂

1. feature

  1. 支持https
  2. 支持配置的方式启动,也支持以模块的方式引入到代码中

2. Install

windows:

npm install node-mitmproy -g

AnyProxy

AnyProxy
看了之后发现这个个工具是阿里巴巴出品的。

1. feature

  • 支持https明文代理(这个基本上所有代理工具都支持~~)
  • 支持的网速模拟 突然看到个代理工具新鲜的功能,一开始还有点纳闷,后来知道了,这个功能是指可以限制网速,比如设置比如throttle: 10这样的功能来限制当前网速是每秒10kb大小。
  • 支持二次开发,可以用js控制代理的全部流程,搭建前端个性化调试工具(这个我感觉不错,估计spy-debugger就是用这个又把weiner给修改了?不知道,这里没弄懂。感觉需要看源代码才能搞清楚了)
  • 提供web版界面,观测请求情况

2. use

install

在你装完了node后执行 npm install -g anyproxy
tip: 如果你想要再运行安装(程序)的时候得到一些异常,那你就需要安装python了(不过这个是可选的)

2 start proxy server

  • 开始用默认设置
  • 或者开始用 特别的端口: anyproxy --port 8001
  • 开始用规则文件: anyproxy --rule ./rule_sample/rule_allow_CORS.js

3 set up proxy settings in your browser, or system, or mobile devices,etc

默认的端口号是127.0.0.1:8001,或者在远程设备输入你的ip地址:8001