yzc365亚洲城娱乐|yzc365亚洲城娱乐场|点击-->yzc365亚洲城官网

您正在使用IE低版浏览器,为了您的yzc365亚洲城官网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
正文
发私信给傲客
发送

4

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

本文作者: 2016-06-24 20:26
导语:一个脑洞大开的程序猿写了用开源程序改了一个微信聊天机器人,然后......它就被玩坏了。

yzc365亚洲城官网按:本文作者傲客,i春秋授权yzc365亚洲城官网独家首发。

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

写在前面

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

 以下是正文:

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

  • 起源——为啥要做这个死

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

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

微信扫码登录后:

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

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

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

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

  • 防撤回机器人原理

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

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

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

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

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

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

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

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

其中celSrc是撤回人,比如大叔撤回了消息,那么“celSrc”就是大叔,从字典中找到key为“大叔”的对象,对应的value就是“py交易”这样再把消息发回到消息源中就实现了这样的效果:“大叔”撤回了消息,撤回的消息是:py交易。其实这种写法是有bug的,我先不说,可以在下面回复我,最好带解决方案哦。

  • 调试过程

我并没有特别好的python功底(我是做.NET、前端和node.js的,不过我胆大,啥代码都敢碰),而且手头没有python断点调试工具,只能通过print打印调试,并且犯二的用了自己的微信号调试,调试过程还算顺利,很快就满足了基本需求:

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

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

看着代码稳定运行了,我就去干别的了,就在这时候被群友玩坏了:

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

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

类似的超长消息发了十几条左右被我发现了,马上关闭了程序,但已经晚了,我被微信关了小黑屋……

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

我意识到我没有写字数限制,导致群里发多长的消息再撤回我都原封不动的发出来,构成炸群行为。记得我被封杀前的最后几条消息就是说我要写字数限制,然而微信并没有给我这个改正的机会。

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

  • 铁窗泪——微信小黑屋规则探索

微信被封是啥滋味的?首先,发消息肯定没戏。

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

发个朋友圈通知下大家吧,门都没有。

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

我基本与