日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gh0st源码分析与远控的编写(一)

發布時間:2024/4/11 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gh0st源码分析与远控的编写(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


? ? 再過幾天期末考試了,還有好多要復習。。蛋都快碎了。最近在看老狼的gh0st內核編程,想了很久要不要寫文章,最后還是覺得很有必要,原因過一會講。

? ? 先送上老狼的gh0st無加密(lxe格式)視頻下載地址:

????http://phith0n.400gb.com/u/29415/3193732

? ? 其中包含的gh0st源碼(亂七八糟的被我的卡巴斯基殺過一遍,僅僅是源碼):http://www.400gb.com/file/23820009

????在寫東西前我要說一下,我雖然說研究遠控的源碼,但我告訴你我以前包括以后從未也從不想使用遠控來控制中國人的電腦。我希望你們大家也一樣,僅僅只是對編程感興趣,而不是為了違法的目的去使用代碼。


? ? 好了,進入主題。老狼的gh0st內核編程教程,我認為是國內絕無僅有的一套比較全的遠控編寫的教程,它很詳細,基本上就是教你重新打造一款遠控,使用gh0st內核。

? ? 但是為什么我還要寫這一套文章,既然教程都有了。我認為這套教程有一些很致命的問題:

? ? 1.不想吐槽老狼英語口語水平

? ? 2.老狼在教程伊始沒有系統地給大家介紹遠控的概念。什么是服務端,什么是客戶端之類的問題。(好像老狼在他之前其他教程里講過,但在網上傳的最多的只有這個教程,所以很多朋友看教程的時候還是一知半解)

? ? 3.主控端代碼在vs2010中編寫,但被控端代碼卻在古老的VC6下創建。不知道老狼為什么這么做,使用VC6還得下載sdk。所以我在編寫的時候,是將主控端、被控端這些工程放在VS2010下同一個解決方案中,方便代碼的管理。

? ? 4.老狼的代碼與教程有一些錯誤,而且他遇到問題、解決問題的方法不太符合面向對象的思想,還有些問題的解決只是解決了表面的問題,并沒有真正找到問題的根源。這也是很多軟件漏洞多發的關鍵,一個漏洞如果不從根源上修復,可能在其他代碼中存在一個新的漏洞。

? ? 5.教程中很多地方(可以說大部分地方)只是復制的gh0st代碼,并沒有詳細的講解。

? ? 當然這只是我的見解,不是說我可以做的更好,只是我在學習過程中發現的問題。我的能力不可能做出這樣一套完善的教程,我寫文章的目的只是像一個批注,在大家觀看教程的過程中給大家一點幫助。我的文章不能替代老狼的教程。

????

? ? 在這里,先給大家一個大局觀:gh0st是什么,大概原理是什么。

? ? gh0st是一款基于C/S架構的遠程管理軟件(我只是就事論事,不想討論C/S架構過時或不過時)。所謂遠程管理,就是我在我的電腦上通過一些手段,可以操作其他電腦。什么是C/S架構,C表示Client,S表示Server,也就是客戶端和服務端的意思。可以這樣理解C/S,現在有兩臺電腦,一臺是Server,一臺是Client,server電腦就會開啟一個端口,并一直監聽這個端口中的信息。client來連接這個端口,連接成功后,兩臺機器就能互相發送信息了。(具體的原理建議大家去看socket通信)

? ? gh0st用的是C/S架構中的反向連接。我用主控端和被控端來稱呼黑客的電腦和肉雞的電腦。反向連接的意思就是我主控端作為server,被控端作為client,主控端監聽一個固定的端口,并有一個固定的IP。然后被控端來連接這個IP的該端口,這就是所謂的上線。

? ? 在實際情況中,黑客的電腦并不是都有固定的IP,我在我們寢室使用的是一個路由器,于是我的IP只是內網IP,192.168.x.x。而且,如果我換一個地方上網,IP也會變。這樣我的被控端是找不到我的IP的。所以很多遠控對待該問題,有兩個解決方案:

? ? 1.DNS上線

? ? 花生殼、3322提供了免費的動態域名服務,其實就是提供了DNS服務。我們把自己的IP綁定到DNS服務器上,被控端通過對DNS的解析,找到主控端的IP,再連接。下次換地方上網了,只需要更改自己綁定到DNS上的IP即可。

? ? 2.FTP(HTTP)上線

? ? 我們把自己的IP寫入一個文本文件1.txt,放在ftp(http)服務器上,比如ftp://leavesongs.com/1.txt。被控端去下載該txt,在其中找到主控端的IP。再連接。

? ? 當然gh0st對他們都是支持的。

? ? 再講講gh0st這個軟件的組成。老狼給的gh0st最終編譯好就是一個exe文件,點擊打開后是一個主控端的樣子:

????

? ? 在build選項卡中,填好相關信息,可以生成一個exe文件,這就是所謂的被控端。

? ? 但是我們打開源碼看,其實它是主要由三個部分組成,一是帶界面的主控端,一個是動態鏈接庫dll,一個是加載dll的exe。我們被控端的所有功能都是寫在dll當中的。而并不是寫在exe文件中。


? ? 大局觀大概就是這些。再說一下gh0st核心內容。

? ? 在傳輸數據方面,主控端使用IOCP模型,關于該模型請google。在主控端中,由CIOCPServer類實現。在被控端中,數據傳輸使用CClientSocket類實現。數據傳輸是遠控的核心,所以這兩個類也就成了gh0st的核心類。當然,在傳輸過程中,gh0st使用zlib進行壓縮,減小數據包的大小。

? ? 在被控端管理方面,gh0st使用了一個很好的方案。先做了一個CManager類,作為所有管理功能的基類,其他的比如系統管理類CSystenManager就繼承了CManager。大大地增加了代碼的重用性。

? ? 在主控端方面,有這樣一個回調函數NotifyProc,所有被控端發來的消息,都會經過此函數,在該函數中使用switch語句,處理各個消息。使得代碼看起來井井有條。

? ? 在穩定性方面,被控端宿主為svchost以系統服務啟動,并有守護線程,用心跳包機制防止以外掉線。


? ? 說了半天了……西安這又是一個炎熱的下午。希望你能看懂我的文章,并對遠控有一個更深的理解。下次我會開始寫一些gh0st的源碼,和老狼視頻里一些難以理解的地方。再次強調,本文不能替代老狼的視頻,想學習的同學務必認真地看老狼的教程,你會受益良多。

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的gh0st源码分析与远控的编写(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。