Giter Site home page Giter Site logo

z342526265 / bypass_wechat_qrcode_scanning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kissleo/bypass_wechat_qrcode_scanning

0.0 1.0 0.0 25 KB

绕过微信公众号、小程序的强制摄像头扫码登陆

License: Apache License 2.0

Python 100.00%

bypass_wechat_qrcode_scanning's Introduction

bypass_wechat_qrcode_scanning

绕过微信公众号、小程序的强制摄像头扫码登陆

产生缘由

微信公众号(小程序)的扫码登陆机制是在过于讨厌。一方面自作主张强制进行“二维码登陆保护”,且不能关闭这种“保护”。另一方面,不允许长按扫码或者从相册中选择图片扫码登陆,强制要求通过摄像头扫码登陆。

当你试图构造正确的url,想直接从微信打开,绕过摄像头时,微信的内置浏览器还会修改url,使得无法通过构造url来绕过。

当你试图在Chrome模拟该过程,会发现,即使自己伪造了微信内置浏览器的User-Agent,也会因为缺少必要的cookies而无法完成。

一般人还是不会被这个困扰,所以我找遍全网都没找到这个解决方案。个人是因为弄一些自动化,比如selenium,每次都要人工操作就很麻烦,所以就花时间去研究了下。

我要的是一个不用通过手机扫码,单纯在电脑中就能自己伪造扫码过程进行登录的脚本。

使用方法

使用方法就是,将脚本中这几行的数据填写为你自己的数据:

    pass_ticket = 'xxxxxxx'
    wap_sid2 = 'xxxxxx'
    user_agent = 'xxxxxx'
    wxuin = 'xxxxxx'
    ua_id = 'xxxxxx'
    pgv_pvi = 'xxxxxxx'
    pgv_si = 'xxxxxx'
    uuid = 'xxxxxxx'

其中user_agent指的是微信内置浏览器的UA,你可以用微信的内置浏览器去访问一些能显示自己UA的在线工具,然后就能得到。

其他的几个都是cookies,可以在登录微信公众号或者小程序后,按f12在开发者工具中找到这几个cookies对应的值(只要填一次就好,一劳永逸)。

除了wap_sid2之外,其他都是一劳永逸,不用改的。剩下一个wap_sid2,过差不多一天就会过期。在wap_sid2过期之前,你可以免扫码登陆。但是当他过期之后,你就需要再登陆一起获取wap_sid2。

所以这个项目无法实现永久的免扫码登陆,只能实现“扫码登陆一次后,一段时间内可以免扫码登陆”。有兴趣的大佬可以看看能不能通过hook的方式获取微信内置浏览器的wap_sid2,这样的话就能实现真正的“永久免扫码登陆”。

请忽略下面的一切,现在已经不用appmsg_token了,爬虫自己会获取

最后剩下一个appmsg_token的获取方式,就比较复杂,需要对微信进行抓包得到。

本来抓包也不难,可是微信自带了对证书的检验,所以微信看到抓包的自签名证书就直接断开连接了,正常情况下无法解密https的流量。

但是我们可以通过hook的方式来使得微信对证书的检验失效。这个时候就需要借助VitualXposed(免root) + JustTrustMe来使得抓包需要的自签名证书被信任。

之后就可以抓包了,关于抓包,你可以使用fiddler,参考这篇文章,我使用的是burp,详细说一下过程。

首先你要安装VitualXposed,然后去微信的官网,下载一个微信的最新版本的apk,最好选择32位的,我安装64位一直失败。然后再VirtualXposed中安装apk。之后再去安装JustTrustMe就可以了。

然后你需要把burp的证书导出并安装到手机里面,在burp里面选择导出证书(export certificate),然后修改后缀为.cer,传给手机后安装即可,网上可以找到大量教程。

之后,打开手机的wifi--更多设置--开启代理,填你电脑的内网ip以及burp的监听端口就可以了。记得先开启burp的监听再开启VitualXposed中的微信。之后你输入账号和密码登陆自己的公众号,然后用微信扫描登陆公众号的二维码、开启burp的拦截,点击确认登录,(要拦截最后确认登录时候的数据包)。在POST的内容里面就可以找到appmsg_token了。每次扫码登陆,appmsg_token都会变化,但是没事,你随便弄一个填写到脚本中,都是可以通过检验的,一劳永逸。

现在准备工作做好了,当你需要在电脑模拟手机的扫码登陆时,你只要把二维码的图片覆盖qrcode.png就可以了,或者直接用二维码的url,看源码就知道了。启动后就可以直接在电脑中,不再需要手机的扫码,就能成功登陆了。配合selenium食用更佳。

bypass_wechat_qrcode_scanning's People

Contributors

chimaoshu avatar

Watchers

 avatar

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.