看到这个标题,相信大部分人的第一反应就是:真有微信抢红包外挂?
这不马上快过年啦,容妹思来想去,送点啥给各位铁粉呢?最后让我们的蝈蝈写了篇干干干干货,如何用Python实现一个无人监控的外挂,为大家奉上。
这样大家可以该干嘛干嘛,看春晚的看春晚,打麻将的打麻将,嗑瓜子的嗑瓜子,不耽误!微信自动帮你抢红包~
Github上有一款工具可以在安卓手机上运行,原理是监听屏幕变动,点击红包,但是有个缺点,只能到打开那步,最终入手红包还是靠人工点击。作为一个开发总是哪里都要带上电脑咯,哪怕是年会:-)
我们可以用python+安卓模拟器,通过该原理,做一个无人监控的抢红包外挂。
准备工作
语言:Python3
工具:Pycharm,截图工具(QQ),安卓模拟器(网易MUMU)
技术:Opencv2/Opencv3,aircv,pypiwin32
流程概述
模拟器下载微信,登录
找个人发个红包给你,把红包截个图保存
截屏
红包图对比
模拟鼠标点击,完成微信操作
写定时任务
详细实现
先忽悠同事发个红包给我:-)这是最关键的,嘿嘿
然后通过截图工具把红包壳截取下来,开始编写程序
这是需要导入的包
在屏幕指定区域截图并保存,如果大家对性能还有更高需求的话,可以使用win32的API性能提高10倍还多,但是代码量也多很多,我这里直接用PIL图片包两行代码搞定,大家千万别运行我注释那行,为了性能直接使用内存处理图片,而不用将临时图片存放硬盘再读取。
比较关键的一段代码,网上找了个aircv包,通过图像对比找到红包所在位置,这时候红包图片就能使用了,第六行是核心代码,0.99相似度一定要设置,不然系统会疯狂点击已经打开的红包。第七行是我们做的一个判断,如果没有相似图片位置,程序退出,防止内存消耗,以及在无谓的计算时候新的红包出现。倒数第二行按照网上demo会有个float和int的类型不匹配,我这里转换了下。
最核心的代码,因为红包打开和微信返回上一步的按钮显示位置都是固定的,比较简单,最难的是第一步定位,蝈蝈家里的笔记本貌似是弧形的,红包在上方计算为啥会少,红包在下方计算位置会多,加了很多判断语句,公司电脑就很简单,一步搞定。Time.sleep()让电脑暂停下,毕竟红包动画也有时间,大家可以根据实际需要进行调试。
难点反而是win32的安装通过pip安装以后pycharm不认,百度以后找到方法“pipinstall pypiwin32”
这是家里的电脑,调了很久很久
这是main方法,很简单
Pycharm好是好,但是极端占用内存,我们在抢红包关键时刻能省则省
这是一个运行跑批的代码,设定每秒运行我刚才写的python代码,我们需要在windonws命令行里运行。
终于程序写完啦,我们需要调试下
我们先打开模拟器进入要发红包的群,在命令行里运行之前的批量程序
看到了嘛?我比发红包的人还快抢到红包,哈哈
领取专属 10元无门槛券
私享最新 技术干货