Giter Site home page Giter Site logo

wuchangming / spy-debugger Goto Github PK

View Code? Open in Web Editor NEW
7.5K 148.0 824.0 6.81 MB

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

License: MIT License

JavaScript 88.10% HTML 5.81% CSS 6.09%
debug wechat weinre spy-debugger

spy-debugger's Introduction

关于spy-debugger

一站式页面调试、抓包工具。远程调试任何手机浏览器页面,任何手机移动端webview(如:微信,HybridApp等)。支持HTTP/HTTPS,无需USB连接设备。  

npm npm Build Status

Language: English

特性

1、页面调试+抓包
2、操作简单,无需USB连接设备
3、支持HTTPS
4、spy-debugger内部集成了weinrenode-mitmproxyAnyProxy
5、自动忽略原生App发起的https请求,只拦截webview发起的https请求。对使用了SSL pinning技术的原生App不造成任何影响。【PS:由于 iOS 15 调整代理协议,iOS 15 已无法检测请求是否浏览器发起】
6、可以配合其它代理工具一起使用(默认使用AnyProxy) (设置外部代理)

使用案例

页面编辑模式

启动命令:spy-debugger -w true

weiner页面调试界面

anyproxy抓包界面

安装

Windows 下

    npm install spy-debugger -g

Mac 下

    sudo npm install spy-debugger -g

三分钟上手

第一步:手机和PC保持在同一网络下(比如同时连到一个Wi-Fi下)

第二步:命令行输入spy-debugger,按命令行提示用浏览器打开相应地址。

第三步:设置手机的HTTP代理,代理IP地址设置为PC的IP地址,端口为spy-debugger的启动端口(默认端口:9888)。

  • Android设置代理步骤:设置 - WLAN - 长按选中网络 - 修改网络 - 高级 - 代理设置 - 手动
  • iOS设置代理步骤:设置 - 无线局域网 - 选中网络 - HTTP代理手动

第四步:手机安装证书。注:手机必须先设置完代理后再通过(非微信)手机浏览器访问http://s.xxx(地址二维码)安装证书(手机首次调试需要安装证书,已安装了证书的手机无需重复安装)。iOS新安装的证书需要手动打开证书信任

第五步:用手机浏览器访问你要调试的页面即可。

自定义选项

端口

(默认端口:9888)

spy-debugger -p 8888

设置外部代理(默认使用AnyProxy)

spy-debugger -e http://127.0.0.1:8888

spy-debugger内置AnyProxy提供抓包功能,但是也可通过设置外部代理和其它抓包代理工具一起使用,如:Charles、Fiddler。

设置页面内容为可编辑模式

该功能使页面内容修改更加直观方便。 (默认: false)

spy-debugger -w true

内部实现原理:在需要调试的页面内注入代码:document.body.contentEditable=true。暂不支持使用了iscroll框架的页面。

是否允许weinre监控iframe加载的页面

(默认: false)

spy-debugger -i true

是否只拦截浏览器发起的https请求 【PS:由于 iOS 15 调整代理协议,已无法检测请求是否浏览器发起】

(默认: false)

spy-debugger -b true

有些浏览器发出的connect请求没有正确的携带userAgent,这个判断有时候会出错,如UC浏览器。这个时候需要设置为false。大多数情况建议启用默认配置:true,由于目前大量App应用自身(非WebView)发出的请求会使用到SSL pinning技术,自定义的证书将不能通过app的证书校验。

是否允许HTTP缓存

(默认: false)

spy-debugger -c true

更多

  • 修复weinrenode.js V7版本会崩溃的bug

  • weinre在页面document ready事件前,无法打印console.log日志进行了增强修复。

  • 增强weinre打印未捕获异常(Uncaught Exceptions)功能。

  • spy-debugger原理是集成了weinre,简化了weinre需要给每个调试的页面添加js代码。spy-debugger原理是拦截所有html页面请求注入weinre所需要的js代码。让页面调试更加方便。

spy-debugger's People

Contributors

coddingboy avatar dependabot[bot] avatar wuchangming avatar yize avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spy-debugger's Issues

是否支持axios发起请求?

刚开始看到这个调试神器,一下子激动了一把,按照步骤一切正常,但是我的前端页面用是用axios发起的http请求,感觉所有的请求是发生了错误
image
这个是请求拦截的log,请大神过目!

node 版本6.10.0 异常退出

node版本:6.10.0

2017-03-02T11:13:01.861Z spy-debugger: target t-2: weinre: target t-2 connected to client c-1
2017-03-02T11:13:02.562Z spy-debugger: client c-1: weinre: invocation exception on Object.childNodeCountUpdated(): TypeError: Cannot set property '_childNodeCount' of undefined
2017-03-02T11:13:02.578Z spy-debugger: client c-1: weinre: invocation exception on Object.childNodeInserted(): TypeError: Cannot read property '_insertChild' of undefined
internal/process/promises.js:72
            warning.stack = reason.stack;
                                  ^

TypeError: Cannot read property 'displayName' of undefined

map local功能

新增的替换内容不能直接修改,没有选择本地路径时需要重新从根目录开始,不太方便,可以优化下。
其他很棒

不显示外联的CSS样式

在使用weinre调试样式的时候,外联css文件中的样式没有在右侧显示出来,能帮忙看下什么问题吗

image

初步使用 反馈

环境: win7 + Android
能正常使用, 微信-- QQ浏览器 切换使用, 有些 报错 日志:
WiInspectorImpl.hideDOMNodeHighlight() : TypeError : 'off' undefined
Object().childNodeInserted() : TypeError : '_insertChild' undefined

欠缺功能:
1: 不能看 css js 源文件 (微信的weinre工具修改源文件会断开)
2:console -- jQuery document.querySelector() 查找DOM, 不能返回DOM结构

证书安装成功,页面调试没有页面

证书已经安装成功了。代理也都设置了
百度、京东的页面可以抓取到页面。

我们的网站抓包正常,但是页面调试不行,targets 是 none 报这个错误

node.js v8.1.3 浏览器是safari

{ ---------------------------------------------------------
error: Error: socket hang up
---------------------------------------------------------
stack:
   _http_client.js:344 - undefined()
   _http_client.js:376 - undefined()
         events.js:120 - undefined()
         events.js:210 - undefined()
            net.js:549 - undefined()
      _tls_wrap.js:350 - undefined()
         events.js:316 - undefined()
         events.js:115 - undefined()
         events.js:210 - undefined()
            net.js:549 - undefined() code: 'ECONNRESET' }

[nodejs V7版本崩溃问题]我输入spy-debugger进入某一个页面就报错。然后自动退出当前spy-debugger的执行命令。

λ spy-debugger
(node:17776) DeprecationWarning: 'GLOBAL' is deprecated, use 'global'
正在启动代理
2016-11-03T09:48:35.681Z index.js: starting server at http://localhost:51610
node-mitmproxy启动端口: 9888
浏览器打开 ---> http://127.0.0.1:51615
2016-11-03T09:48:49.156Z index.js: target t-2: weinre: target t-2 connected to client c-1
2016-11-03T09:48:51.130Z index.js: target t-3: weinre: target t-3 connected to client c-1
2016-11-03T09:48:51.192Z index.js: target t-2: weinre: target t-2 disconnected from client c-1
D:\Program Files\nodejs\node_modules.spy-debugger_npminstall\node_modules.3.10.2@anyproxy\proxy.js:208
logUtil.printLog('Caught exception: ' + (err.stack || err), logUtil.T_ERR);
^

TypeError: Cannot read property 'displayName' of undefined

安装一直失败

C:\Users\Administrator>npm install spy-debugger -g
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "D:\yangjing\nodejs\node.exe" "D:\yangjing\nodejs\node_modu
es\npm\bin\npm-cli.js" "install" "spy-debugger" "-g"
npm ERR! node v4.4.7
npm ERR! npm v2.15.8

npm ERR! shasum check failed for C:\Users\ADMINI~1\AppData\Local\Temp\npm-2488-
ff694c0\registry.npmjs.org\spy-debugger-\spy-debugger-3.5.0.tgz
npm ERR! Expected: 700a7a053a1f15f5a1cca84e8279f23e672b752d
npm ERR! Actual: 64bc811c3b6996a3eb7d8cdfca89fa7be3653e3d
npm ERR! From: https://registry.npmjs.org/spy-debugger/-/spy-debugger-3.5.0
tgz
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! https://github.com/npm/npm/issues

一直报deprecated,受不了

(node:55699) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
满屏都是这个,工具挺好用的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.