丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
專欄 正文
發(fā)私信給傲客
發(fā)送

4

被黑客分分鐘玩死的微信聊天機(jī)器人

本文作者: 傲客 2016-06-24 20:26
導(dǎo)語:一個腦洞大開的程序猿寫了用開源程序改了一個微信聊天機(jī)器人,然后......它就被玩壞了。

雷鋒網(wǎng)按:本文作者傲客,i春秋授權(quán)雷鋒網(wǎng)獨家首發(fā)。

被黑客分分鐘玩死的微信聊天機(jī)器人

寫在前面

微信作為時下最in最熱的移動端即時通訊App,把我們的工作和生活緊密聯(lián)系到了一起。一個腦洞大開的程序猿寫了用開源程序改了一個微信聊天機(jī)器人,并且在不斷調(diào)試中給它賦予了n多好玩的功能譬如防撤回信息之類。然后好死不死他在號稱白帽黑客歡喜地的 “i春秋-信息安全魔法學(xué)院”微信群中做機(jī)器人的調(diào)試,于是分分鐘被兇殘的壞蛋們玩壞,這個小程序猿也被微信封號處理,結(jié)果頑強(qiáng)不息的程序員為了突破微信封鎖又做了很多逗逼嘗試……因為事情過于搞笑,雷鋒網(wǎng)特意向i春秋學(xué)院約稿,把故事前因后果梳理出來。截圖比較多,但是高潮迭起,值得看完。

 以下是正文:

前段時間用開源程序做了一個微信聊天機(jī)器人,放到i春秋魔法學(xué)院群里做調(diào)試。然后被一群黑客玩壞了。但是整個過程還是比較好玩的,所以記錄下來這個事情的來龍去脈,不過提前聲明,這樣做是不對的,沒有考慮后果就貿(mào)然跑代碼測試也是不負(fù)責(zé)任的,尤其是你不知道黑客們會用什么方法幫你測試,真的有封號的風(fēng)險哦,請大家不要學(xué)我!(真要測試也要用小號測試?)

  • 起源——為啥要做這個死

最近因為某些原因,想給自己找點事情干填補(bǔ)空閑時間,前一段時間在Github上看到一個微信機(jī)器人的代碼,代碼鏈接:Urinx/WeixinBot,大致功能就是用python實現(xiàn)一個命令行版的微信,內(nèi)置了兩個聊天機(jī)器人的API可以實現(xiàn)自動回復(fù),但默認(rèn)不開啟,于是打算試一下。程序跑起來大概就是這個樣子: 

被黑客分分鐘玩死的微信聊天機(jī)器人

微信掃碼登錄后:

被黑客分分鐘玩死的微信聊天機(jī)器人

去小黃雞和小逗機(jī)器人API網(wǎng)站注冊兩個測試key,在代碼中找到自動回復(fù)的變量設(shè)置成true就可以實現(xiàn)消息自動回復(fù),改好代碼運(yùn)行,在群里稍加引導(dǎo),就被人們玩起來了。

被黑客分分鐘玩死的微信聊天機(jī)器人

被黑客分分鐘玩死的微信聊天機(jī)器人

  • 防撤回機(jī)器人原理

群里正玩著高興,我開始看代碼,消息監(jiān)聽部分的代碼大致是這樣的:

被黑客分分鐘玩死的微信聊天機(jī)器人

被黑客分分鐘玩死的微信聊天機(jī)器人

分類那么細(xì)致,還有撤回消息,我果斷動起了做防撤回機(jī)器人的念頭,就是在有人撤回消息的時候用這個聊天機(jī)器人把撤回的消息原封不動地發(fā)回來,這個念頭出來后我就離作死越來越近了。

有了上面代碼的基礎(chǔ),撤回機(jī)器人的實現(xiàn)就不是難事了。最先解決最簡單的文字撤回,在第一個消息分類中加入代碼邏輯,將所有文字消息的文字和發(fā)信人緩存到一個字典中,形成這樣一個字典結(jié)構(gòu):

{'某S': '各位表哥,有機(jī)會一起睡覺', '某客': '好啊好啊', '大叔': 'py交易'}

當(dāng)有人撤回時,程序執(zhí)行到撤回分支中,用撤回的人去找剛才字典的key,取出字典中的value發(fā)送出去,拼接成如下代碼:

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

其中celSrc是撤回人,比如大叔撤回了消息,那么“celSrc”就是大叔,從字典中找到key為“大叔”的對象,對應(yīng)的value就是“py交易”這樣再把消息發(fā)回到消息源中就實現(xiàn)了這樣的效果:“大叔”撤回了消息,撤回的消息是:py交易。其實這種寫法是有bug的,我先不說,可以在下面回復(fù)我,最好帶解決方案哦。

  • 調(diào)試過程

我并沒有特別好的python功底(我是做.NET、前端和node.js的,不過我膽大,啥代碼都敢碰),而且手頭沒有python斷點調(diào)試工具,只能通過print打印調(diào)試,并且犯二的用了自己的微信號調(diào)試,調(diào)試過程還算順利,很快就滿足了基本需求:

 被黑客分分鐘玩死的微信聊天機(jī)器人

 被黑客分分鐘玩死的微信聊天機(jī)器人

看著代碼穩(wěn)定運(yùn)行了,我就去干別的了,就在這時候被群友玩壞了:

被黑客分分鐘玩死的微信聊天機(jī)器人

被黑客分分鐘玩死的微信聊天機(jī)器人

類似的超長消息發(fā)了十幾條左右被我發(fā)現(xiàn)了,馬上關(guān)閉了程序,但已經(jīng)晚了,我被微信關(guān)了小黑屋……

 被黑客分分鐘玩死的微信聊天機(jī)器人

我意識到我沒有寫字?jǐn)?shù)限制,導(dǎo)致群里發(fā)多長的消息再撤回我都原封不動的發(fā)出來,構(gòu)成炸群行為。記得我被封殺前的最后幾條消息就是說我要寫字?jǐn)?shù)限制,然而微信并沒有給我這個改正的機(jī)會。

 被黑客分分鐘玩死的微信聊天機(jī)器人

  • 鐵窗淚——微信小黑屋規(guī)則探索

微信被封是啥滋味的?首先,發(fā)消息肯定沒戲。

 被黑客分分鐘玩死的微信聊天機(jī)器人

發(fā)個朋友圈通知下大家吧,門都沒有。

 被黑客分分鐘玩死的微信聊天機(jī)器人

我基本與外界隔絕了聯(lián)系,放棄了任何希望,只望老實改過,好好做人,就在這時,傲客(注:i春秋魔法學(xué)院微信群群主)給我發(fā)了個紅包,我發(fā)現(xiàn)我竟然可以正常搶紅包。

 被黑客分分鐘玩死的微信聊天機(jī)器人

紅包功能不受限制的話,我是不是可以利用一下?

 被黑客分分鐘玩死的微信聊天機(jī)器人

 被黑客分分鐘玩死的微信聊天機(jī)器人

哈哈哈,機(jī)(dou)智(bi)的傲客,我發(fā)紅包他也發(fā)紅包。發(fā)現(xiàn)這個新大陸之后我至少可以用紅包簡單地跟我的微信好友溝通了,可以讓常聯(lián)系的人加我小號,不會以為我消失。我找到了封號后的溝通方式。

  • 感受與思考

曾經(jīng)在知乎上看到這樣一篇文章,一個俄羅斯程序員,生活在終端里,只要任何事情花費(fèi)時間超過了90秒,他一定會寫一個腳本自動化實現(xiàn)。

比如工作日晚上九點之后這名程序員的運(yùn)維服務(wù)器中還有正在運(yùn)行的SSH進(jìn)程,就會給妻子發(fā)一個今天加班的短信,并從文本庫中隨機(jī)選取一句加班理由。早上8點45分服務(wù)器中依然沒有活動的SSH進(jìn)程會自動向BOSS發(fā)一封“今天我身體不適的”的郵件,并隨機(jī)附上一段請假理由。


還有一個老子要喝咖啡的腳本,這個腳本在執(zhí)行之后,會先精確等候17秒,然后打開一個SSH進(jìn)程,遠(yuǎn)程連接到公司的咖啡機(jī),然后傳送一堆代碼過去,咖啡機(jī)就會煮一份中杯半咖啡因的拿鐵咖啡,然后精確等待24秒后,再倒進(jìn)咖啡杯里。這個腳本運(yùn)行的全程,正好是這名程序員從自己的辦公桌前起身,走到咖啡機(jī)前所需要花費(fèi)的時間。(此項目開源在github中:hacker-scripts)

我的這次作死經(jīng)歷也可以探索出更多的自動化解決方案,防撤回只是微信機(jī)器人的一個有趣的玩法自動請假完全不在話下,拋開微信,生活中那么多重復(fù)性操作也可以作為探索用代碼去實現(xiàn)。

試想一個iOS開發(fā)狗的某一天,清晨,音箱從你最近聽過的播放列表中挑選你最喜歡的歌曲叫你起床,并自動播報當(dāng)天天氣和空氣質(zhì)量,提醒你是否需要帶傘帶口罩,面包機(jī)早已烤好面包。出門后服務(wù)器自動向優(yōu)步發(fā)出叫車請求。到公司后自動將未完成的工作發(fā)到你的郵箱,并自動從項目管理系統(tǒng)中收集新的bug,從AppStore中抓取低星評價并告知你。你的微信可以自動回復(fù)客服推上來的重復(fù)性問題,工作時間長了自動提醒你活動一下,女神來消息自動回復(fù)永不錯過,寫好的PPT、報告、流程圖放到某個文件夾中自動發(fā)送郵件給相關(guān)人,晚上加班晚了自動發(fā)微信告知老婆/父母……這一切都來自你的代碼,想想是不是蠻激動的?(雷鋒網(wǎng)注:神奇的代碼,跪服)

  • 尾巴

高中時,晚上做完作業(yè),窩在一間小屋子中,拿著父母換下來的單色屏舊手機(jī),背著父母偷偷的給心動的女生發(fā)短信,或核對當(dāng)天的作業(yè),或含蓄的聊天表達(dá)心中的波瀾。每條一毛錢,70字以內(nèi),安全的送達(dá)到對方的手機(jī)上,安心、踏實。如今,微信成為了我們最重要的溝通方式。我們多久沒有發(fā)過短信,多久沒有登過QQ?我們的手機(jī)號碼都已不再重要了,有微信就夠了。微信提供的服務(wù)固然便捷,我們的社交圈子大了,微信加的好友越來越多,人與人之間似乎也越來越近,我們好像可以聯(lián)通整個世界。但當(dāng)微信真的無法為我們服務(wù)的時候,會發(fā)現(xiàn),有那么一部分人只能存在你的記憶中了……

編者語

此次“作死”事件的主角圖南是一枚浸淫多年的程序猿,由于興趣,在i春秋進(jìn)行了網(wǎng)絡(luò)安全方面的學(xué)習(xí),而這次破壞微信撤回機(jī)制的惡作劇也從一個側(cè)面反映了微信的安全漏洞,設(shè)想如果每個人都把這個防撤回機(jī)制編寫入自己的微信,那么我們平常聊天會因為錯發(fā)、誤發(fā)泄露多少隱私。嗯,這里給i春秋點個贊,培養(yǎng)“人”的安全基因,讓開發(fā)工程師具備安全意識,這樣,在軟件的開發(fā)過程中未雨綢繆,解決隱患于未然,才讓信息時代充滿安全感。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

被黑客分分鐘玩死的微信聊天機(jī)器人

分享:
相關(guān)文章

專欄作者

書讀三五卷,心懷天地寬。 我才不會告訴你我是i春秋的。
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說