夏日大做戰

夏日大做戰 html

這個世界上應該沒有什麼能比一個失業的單身程序員更可怕的東西了。當他們的雙手開始中止擼管,也就預示着你末日的來臨。 前端

最近經常有人鏈接個人WIFI,上上網其實也無所謂,可是他們不只要上網並且還下載東西,這我就怒了,其實在路由器上限制他們的速度就能完美的解決問題,可是這種平靜的解決方式沒法知足我這顆愛折騰的心,我決定做弄他們一下,因而,夏日大做戰開始了。 程序員

我最早想到的是:是否能把鏈接上我WIFI的這些人想要看的網頁所有重定向到別處去,好比他們想要百度出來的結果倒是新浪或是草榴社區,這必定會令他們感到鬱悶的,因而我決定先實現這一步。 正則表達式

用計算機網絡知識稍微分析一下這個目標,我發現只須要在路由器上將客戶端請求鏈接的地址改掉去,應該就能實現我要的結果。我手中擁有的全部設備僅僅是一臺50塊錢的TENDA無線路由器,因而我決定在這臺TENDA上改變客戶端請求的IP地址。可是在我翻閱了TENDA的使用手冊後發現這臺家用路由器根本就沒有可編程功能,因此也就無法操做它的網卡,大做戰還未開始就遇到了困難。 編程

在苦思了幾天後,我偶然在網上看到把WIN7筆記本變成一臺無線路由器的方法,這彷佛有點用,由於TENDA沒有編程功能,可是WIN7有可編程功能啊!也就是說這臺WIN7一旦變成了一個路由器後,我就能控制流經這檯筆記本網卡的全部數據了。 瀏覽器

而後這個流程看起來彷佛就是這個樣子: 服務器

圖(一) 網絡

按照網上提供的方法[1],我在個人電腦上設置了一個無線熱點,並用手機找到這個虛擬的WIFI鏈接,實測了一把,手機上網OK jsp

圖(二) 函數

圖(三)

好了,到目前爲止離重定向就不遠了,由於把問題從TENDA上轉移到了WIN7上,WIN7上的工具就多了,並且還能編程,一切彷佛都那麼觸手可及了。

說到重定向,WINDOWS下有個很方便的方法,修改系統盤裏一個名叫Hosts[2]的文件,這個文件蠻有意思的,這個文件的優先級比DNS還要高,好比將www.baidu.com域名和對應的IP地址127.0.0.1寫進這個文件中,WINDOWS發起HTTP請求的時候,並非直接去DNS查找IP地址的,而是首先在這個文件裏面找相同的域名,找到後就鏈接這個IP地址的80端口,而後開始網頁的一些操做。但是這裏百度的域名對應到了本機,你本機上又沒有WEB服務器,因此你請求百度頁面的時候會打不開網頁。

既然你的電腦這時已是一臺路由器了,就能夠玩些有趣的東西了,由於若是能控制win7的上網行爲就等於控制了鏈接上這臺電腦WIFI的客戶端的上網行爲。我把百度的地址定向到了谷歌的地址,谷歌的IP地址是74.125.128.120,這個須要安裝一個抓包軟件分析一下DNS返回的IP地址或者HTTP目標地址。在Hosts文件裏寫上這樣的一句話:

圖(四)

而後用手機打開百度試試。

圖(五)

通過跳轉,最終仍是到了谷歌,這下鏈接我設置的WIFI的人就鬱悶了。

哈哈,經過把這些零散的資料組合起來就能完成一個蠻有趣的效果!而後我讓一些朋友鏈接這個虛擬的WIFI,看看他們有什麼反應,有些人也是完成了如上的跳轉,可是有些人沒有,仍是順利的進入了百度的主頁,我感到很奇怪,難道他們瀏覽器發出的查詢不是www.baidu.com麼?經過Wireshark抓包工具,看到向DNS發送的查詢域名竟然是個叫m.baidu.com的玩意:

圖(六)

看到這個結果,感受「麻煩」來了,有些網站爲了知足手機端的須要,域名可能有些不一樣,這樣,若是使用Hosts文件的話,那要把全部的可能性所有寫進去,並且這還只是一個網站,若是我要實現全部網站重定向的話,那Hosts文件裏的內容就要列舉出世界上全部網站的域名,這固然是不可能的。而後我又陷入了死循環。

能控制網卡的方式也只有作驅動了,正當我決定作個網卡驅動的時候,我從一朋友那裏得知一個叫「SPI[3]的東西。簡單來講就是全部網絡程序須要用到的一些SOCKET函數,進入網卡驅動前都要通過SPI這一層,SPI中有全部的網絡函數如ConnectSend等,只要覆蓋這些函數,就等因而攔截了全部的網絡程序的通信,在這裏能夠過濾和轉發。可是這裏我有個疑問,就是虛擬WIFI是否是一個網絡通信的進程?這個東西也許是直接往真實網卡驅動發消息的,話很少說,實踐是檢驗真理的惟一標準。

通過編碼,完成一個簡單的跳轉,可是隻能在本機實現跳轉,運行我這個軟件後,我發現手機端開始有問題了,這個有待進一步研究。在這裏,我把地址所有定向到了路由器管理頁面,這裏是我本機的操做,注意,在操做過程當中請關掉殺毒軟件。

圖(七)

經過打印出的日誌能夠看到具體的調用進程,這裏是360瀏覽器調用。

圖(八)

能夠看到瀏覽器的CONNECT操做已經所有被定向到了192.168.0.1,這個是個人路由器管理頁面。固然你也能夠把它定向到任何地方。

唔,開始有點看起來挺厲害的感受了。可是,一旦開上這玩意,直接的後果就是,手機連上虛擬的WIFI 就什麼網站也上不了了。由於結果太悲催就不展現了。

這裏有一點值得說一下,我原覺得只要修改Send的目的地址就能完成跳轉,但是這樣作是錯的,由於客戶端在與WEB服務器鏈接前有個TCP握手的過程,若是隻是修改Send的目的地址,那樣就不會有握手過程,服務器是不會返回正確結果的,所以,應該在Connect函數中實現目標地址的修改,像下面這樣。

圖(九)

雖然SPI這條路有些問題,可是卻打開了個人一條新思路,那就是在WIN7上作一個DNS服務器,將全部DNS請求往本機的DNS服務器發,服務器列表裏面弄個正則表達式,這樣想怎麼匹配就能怎麼匹配了。

因爲個人WIN7不是服務器版本,沒法開啓DNS服務(這裏多是能夠開啓的,只是我沒找到方法,若是能的話請郵件我331064949@qq.com),網上的一些DNS服務器沒有我想要的效果,秉承愛折騰的精神,我打算作一個簡單的DNS服務器。

通過幾天的折騰,一個簡易版本的DNS服務器誕生了,就像··額··下面這個樣子:

圖(十)

這玩意監聽着本機的53端口也就是DNS服務端口,若是發現有DNS的請求,我首先取得請求的域名,而後跟這個列表裏面的域名一個一個匹配,有了正則表達式就方便多了,能夠定向全部的域名了,匹配上了我就將後面的IP地址返回給客戶端,客戶端拿到這個IP後就鏈接這個地址的80端口開始HTTP協議了。若是不在列表中的域名,則往上層DNS服務器請求,將結果返回給客戶端。

而後我把網卡DNS設置成本機127.0.0.1,下面就是見證奇蹟的時刻了,注意,這不是魔術,這是技術。

圖(十一)

客戶端輸入任何地址,都是會跳到路由器管理界面裏來。

圖(十二)

圖(十三)

這樣足夠將鏈接這個WIFI的人搞瘋。

可是這樣作有個BUG,就是若是客戶端直接設置DNS的話,是會繞過我這條防線的,但是再想一想看,這些蹭網的傢伙誰會在手機上設置DNS呢?因此,湊合用吧。

慾望老是愈來愈大,不過不要緊,只要愛折騰,那就繼續折騰。在作好這個重定向後,我忽然想看看這些傢伙都用百度搜索些啥玩意!偷窺別人隱私老是刺激的,因此話很少說,本着愛折騰的精神,那就將愛折騰進行到底。夏日大做戰仍然在繼續着!

既然能定向,那我爲什麼不在本機架設一臺WEB服務器呢?定向到本機後,返回一個網站給客戶端,這個網站能夠是任何網站,固然就包括了一個假的百度網站咯!

我從百度主頁上拷貝了百度前端的源代碼,額,說實話,看起來像真的同樣。由於這就是百度首頁的源碼啊!

那如何獲得客戶端輸入呢?其實很簡單,作過WEB開發的人都知道(什麼?你沒作過WEB開發?我褲子都脫了你說你沒過WEB開發?多看點書吧親!),用於客戶提交操做的是一個form表單,表單action指定了提交處理程序的位置,修改百度首頁的formaction,指向咱們本身的處理程序,這裏省去大家調試的麻煩,由於我已經調試過了,百度首頁的輸入信息是經過一個名叫「f」的form表單提交的,修改後像這樣<form name="f" action="record.jsp">record.jsp就是我本身的處理頁面了,哦,忘了跟大家說了,WEB端是用JSP作的,其實就是一個追加文件的操做。

Record.jsp的處理很簡單,打開一個叫record.txt的文件,而後取得客戶端輸入,添加進這個文件中便可,像這個樣子。我在最後還返回了一張可愛的圖片,待會兒測試中會看到。

圖(十四)

架設WEB服務器用TOMCAT就能夠搞定,監聽80端口,首頁指定爲這個特殊的百度頁面,而後作什麼呢?等魚上鉤!

最後仍是我本身測試了,半天都沒人連個人WIFI,真掃興。老樣子,手機找到個人WIFI,而後開始上百度,出來這個畫面,其實這已是假的百度首頁了,只是作起來像真的而已,最關鍵的仍是,客戶端徹底不知道(額,這句是我意淫的)!

圖(十五)

請忽略個人搜索內容,關鍵是看結果,這時候客戶端點擊搜索後,會返回這個,哦!天啊(只要功夫深,圖也P的真)!

圖(十六)

這回鏈接我WIFI的彪子們絕對要瘋了。

但這不是關鍵所在,看我機器上的record.txt文件。

圖(十七)

    在客戶端菊花一緊後,這條記錄已經被我無情的記錄下來了!仍是那句略顯擺的話:下面是見證奇蹟的時刻,這不是魔術,是技術。

 .......................................

後來想一想,這應該算是網絡釣魚的雛形,設想一下,我偷窺的不是百度呢?我萬一有一天對大家的淘寶賬號或者QQ賬號感興趣,我也作個假的網站,大家進來賬號密碼一輸,偷到那些資料還不跟玩兒似的,可是畢竟到了法律的邊緣,並且要想作的好,客戶端應該是毫無知覺的,正確的查詢或是登陸結果要返回給客戶端,再往深了想彷佛還有不少東西須要完善,因此,仍是到此爲止做罷,僅供娛樂。

附:須要以上全部程序源碼的朋友請郵件至331064949@qq.com索取。

 ........................................

最後的話:

額,請原諒我長時間不上Q跟大家聊天扯淡瞎掰,由於我在夏日大做戰,看到這些蛋逼的搜索記錄又着實讓我蛋疼,至於這些蛋逼搜索什麼我就不公佈了(笑)。

好了,就先到這裏,洛陽親友如相問,就說我在寫代碼!

特別鳴謝:

星星:你提供的SPI技術支持,雖而後來由於某些緣由沒用上,不過你提供的SPI技術擴寬了「夏日大做戰」的實現範圍,更爲我後來的IP過濾驅動的想法提供了一些指導思想。由於某些緣由,此次的做戰計劃仍是沒用LINUX啊,有點小失望,不事後續我還有更多的做戰計劃。額,還有就是,你的辦公桌真的好大啊,自動飲料機的飲料也好便宜啊!難怪你一天12個小時都待在公司裏。

饒院長:在我修改網站主頁的時候,你提供了強有力的JSP技術支持,讓我順利實現個人大做戰計劃,我記得你只是用了一會就搞定了我一天都沒搞定的事情,確實,隔行如隔山啊,畢竟愛因斯坦也會找數學家幫忙嘛(笑)。祝你早日去阿里巴巴工做哈!

劉東東:感謝你送的VODKA,每次都是靠這瓶VODKA才能讓我持續‘戰鬥’到凌晨兩三點(‘戰鬥’特指寫代碼,不要想歪了)。哦,對了,給你搬家的時候發現你抱幾本書都吃力啊?當年那能作50個俯臥撐猩猩般的力量哪去了?我三天不擼管力量就是你兩倍啊!要增強鍛鍊了劉東東!

李水壺和他的妻子:感謝大家的測試以及耐心的聽完我長達一個多小時枯燥乏味的原理講解,雖然離大家的淘寶大計劃還有很遠的距離,也離當初設計的「益樂生活網」目標不一樣,可是隻要有信心而且持續不斷的前進就能到達目的地的是吧。還有,李水壺你炒的螺螄真的很好吃啊!

鄰家小妹:感謝每次凌晨一兩點睏意上來的時候,你和你男友就回來了,而後你男友開始拔鑰匙,拔衣服,拔內褲,拔屌......你之後千萬不要連上個人WIFI啊,否則你的隱私我都看到了。還有就是,你晚上叫的太特麼大聲了啊!不要再跟你男友玩角色扮演了好不,每天就那麼一句臺詞:「在熙哥你好壞~」,耳朵起繭了啊!

相關連接:

1Win7設置WIFIhttp://wenku.baidu.com/view/b3483baddd3383c4bb4cd22b.html

2Hosts文件:http://baike.baidu.com/view/597330.htm 

3Windows SPIhttp://www.xfocus.net/articles/200304/518.html 

額外的資料:

     Linux系統下的實現:http://www.2cto.com/Article/201306/217896.html

相關文章
相關標籤/搜索