• Stars
    star
    7,457
  • Rank 4,943 (Top 0.1 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

关于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代码。让页面调试更加方便。

More Repositories

1

chatgpt-query-engineer-handbook

🤖️ChatGPT提问工程师 -- 开发指南
691
star
2

web-storage-cache

对localStorage 和sessionStorage 进行了扩展,添加了超时时间,序列化方法
JavaScript
640
star
3

https-mitm-proxy-handbook

基于Node.js的HTTPS MITM(中间人)代理的原理和实现
JavaScript
422
star
4

node-mitmproxy

node-mitmproxy is an extensible man-in-the-middle(MITM) proxy server for HTTP/HTTPS base on Node.js.
JavaScript
264
star
5

blog

吴常明's blog
JavaScript
52
star
6

react-interpreter

React 沙盒 📦,可理解为 React 版的 eval() 。该沙盒运行机制可使基于 React 实现的小程序框架「如 Taro3 等」拥有 🚀 热更新能力。
JavaScript
14
star
7

just-mock

Zero configuration, Dynamic local dev mock server
JavaScript
3
star
8

react-native-learning-demo

react native demo
JavaScript
2
star
9

wuchangming.github.io

Tell the Internet,I`m living in her.
CSS
2
star
10

apidispatcher

dispatcher
Java
2
star
11

editable-history

Make the browser history control in SPA more convenient.
TypeScript
1
star
12

mitm-provider

build mitm proxy in Node.js
JavaScript
1
star
13

key-move

1
star
14

o-move

1
star
15

switchable

Fast switcher for DEV environment
1
star
16

htmlstringify

Reverse workflow compare with `htmlparser2`
1
star
17

just-flow

manage business logic
1
star
18

taro-demo-pr-11589

JavaScript
1
star
19

mail-checker

Automatically exported from code.google.com/p/mail-checker
JavaScript
1
star
20

github-repos-notification

A Chrome Extension to monitor your github Repositories about star count, fork count, etc.
HTML
1
star
21

git-stars-notification

git stars notification for chrome extentions
JavaScript
1
star
22

taro-mini-hot-update

JavaScript
1
star
23

tmall-open-app-on-browser

天猫浏览器页面拉起app demo
JavaScript
1
star
24

code-something

1
star
25

babel-plugin-transform-omodule-variable

[deprecated] transform omodule-variable: __omodule_foldername, __omodule_childnames, __omodule_namespace
JavaScript
1
star