您现在的位置是: 首页 >  智慧教育 >  被黑客分分钟玩死的微信聊天机器人 网站首页 智慧教育 被黑客分分钟玩死的微信聊天机器人

被黑客分分钟玩死的微信聊天机器人

  • 长春教育网
  • 智慧教育
  • 2019-10-18 13:29:47
  • 50
简介写在前面 微信作为时下最in最热的移动端即时通讯App,把我们的工作和生活紧密联系到了一起。一个脑洞大开的程序猿写了 用开源程序改了一个微信聊天机器人 ,并且在不断调试中给

被黑客分分钟玩死的微信聊天机器人

写在前面

微信作为时下最in最热的移动端即时通讯App,把我们的工作和生活紧密联系到了一起。一个脑洞大开的程序猿写了用开源程序改了一个微信聊天机器人,并且在不断调试中给它赋予了n多好玩的功能譬如防撤回信息之类。然后好死不死他在号称白帽黑客欢喜地的 “i春秋-信息安全魔法学院”微信群中做机器人的调试,于是分分钟被凶残的坏蛋们玩坏,这个小程序猿也被微信封号处理,结果顽强不息的程序员为了突破微信封锁又做了很多逗逼尝试……因为事情过于搞笑,雷锋网(公众号:雷锋网)特意向i春秋学院约稿,把故事前因后果梳理出来。截图比较多,但是高潮迭起,值得看完。

 以下是正文:

前段时间用开源程序做了一个微信聊天机器人,放到i春秋魔法学院群里做调试。然后被一群黑客玩坏了。但是整个过程还是比较好玩的,所以记录下来这个事情的来龙去脉,不过提前声明,这样做是不对的,没有考虑后果就贸然跑代码测试也是不负责任的,尤其是你不知道黑客们会用什么方法帮你测试,真的有封号的风险哦,请大家不要学我!(真要测试也要用小号测试�)

起源——为啥要做这个死

最近因为某些原因,想给自己找点事情干填补空闲时间,前一段时间在Github上看到一个微信机器人的代码,代码链接:Urinx/WeixinBot,大致功能就是用python实现一个命令行版的微信,内置了两个聊天机器人的API可以实现自动回复,但默认不开启,于是打算试一下。程序跑起来大概就是这个样子: 

被黑客分分钟玩死的微信聊天机器人

微信扫码登录后:

被黑客分分钟玩死的微信聊天机器人

去小黄鸡和小逗机器人API网站注册两个测试key,在代码中找到自动回复的变量设置成true就可以实现消息自动回复,改好代码运行,在群里稍加引导,就被人们玩起来了。

被黑客分分钟玩死的微信聊天机器人

被黑客分分钟玩死的微信聊天机器人

防撤回机器人原理

群里正玩着高兴,我开始看代码,消息监听部分的代码大致是这样的:

被黑客分分钟玩死的微信聊天机器人

被黑客分分钟玩死的微信聊天机器人

分类那么细致,还有撤回消息,我果断动起了做防撤回机器人的念头,就是在有人撤回消息的时候用这个聊天机器人把撤回的消息原封不动地发回来,这个念头出来后我就离作死越来越近了。

有了上面代码的基础,撤回机器人的实现就不是难事了。最先解决最简单的文字撤回,在第一个消息分类中加入代码逻辑,将所有文字消息的文字和发信人缓存到一个字典中,形成这样一个字典结构:

{'某S': '各位表哥,有机会一起睡觉', '某客': '好啊好啊', '大叔': 'py交易'}

当有人撤回时,程序执行到撤回分支中,用撤回的人去找刚才字典的key,取出字典中的value发送出去,拼接成如下代码:

self.webwxsendmsg('\"'+celSrc+'\"撤回了消息,撤回的消息是:'+self.msgdic.get(celSrc), msg['FromUserName'])