免費(fèi)b2b網(wǎng)站要怎么做谷歌seo教程
關(guān)于Mallet
Mallet是一款功能強(qiáng)大的協(xié)議安全分析工具,該工具支持針對(duì)任意協(xié)議創(chuàng)建用于安全審計(jì)的攔截代理,該工具本質(zhì)上與我們所熟悉的攔截Web代理類似,只是通用性更強(qiáng)。

工具運(yùn)行機(jī)制
Mallet建立在Netty框架之上,并且依賴于Netty管道概念,即允許以圖形方式組裝處理程序圖。在Netty世界中,處理程序?qū)嵗峁指?#xff08;即消息從哪里開(kāi)始和結(jié)束)、協(xié)議解碼和編碼(將字節(jié)流轉(zhuǎn)換為Java對(duì)象,然后再轉(zhuǎn)換回來(lái),或者將字節(jié)流轉(zhuǎn)換為不同的字節(jié)流),以及更高級(jí)別的邏輯。通過(guò)仔細(xì)區(qū)分編解碼器與實(shí)際操作消息的處理程序,Mallet可以從現(xiàn)有的大量編解碼器庫(kù)中受益,并避免重新實(shí)現(xiàn)許多協(xié)議。
Mallet 不一定只用于安全審查。由于Mallet是建立在Netty框架之上的,因此一旦使用 Mallet制作了管道原型,我們就可以毫不費(fèi)力地將代碼遷移到普通的Netty應(yīng)用程序中。
下面給出的是一個(gè)簡(jiǎn)單的SOCKS 代理的示例,可作為我們理解Mallet處理網(wǎng)絡(luò)流量的一個(gè)概覽:

一旦我們了解了流量的實(shí)際情況,就可以開(kāi)始在管道中添加適當(dāng)?shù)腃hannelHandler類了。
工具要求
1、最新版本的Java運(yùn)行時(shí)環(huán)境;
2、Maven;
工具安裝
由于該工具基于Java開(kāi)發(fā),因此我們首先需要在本地設(shè)備上安裝并配置好最新版本的Java運(yùn)行時(shí)環(huán)境。
接下來(lái),廣大研究人員可以直接使用下列命令將該項(xiàng)目源碼克隆至本地:
git clone https://github.com/sensepost/mallet.git
然后切換到項(xiàng)目目錄中,使用Maven對(duì)項(xiàng)目源碼進(jìn)行編譯:
cd malletmvn package
工具使用
cd target/java -jar mallet-1.0-SNAPSHOT-spring-boot.jar
項(xiàng)目的examples/目錄中提供了一些示例圖,其中JSON圖要求 JSON客戶端通過(guò)localhost:9998/tcp連接到 Mallet,而真實(shí)服務(wù)器則位于localhost:9999/tcp。只有最后一個(gè)JSON圖(json5.mxe)對(duì)傳遞的 JSON消息的結(jié)構(gòu)做出了任何假設(shè),因此它們應(yīng)該適用于發(fā)送JSON消息的任何應(yīng)用程序。
demo.mxe顯示了一張復(fù)雜的圖,其中包含兩個(gè)管道,即TCP和UDP。TCP管道分別支持端口80和443上的HTTP和HTTPS以及WebSockets,同時(shí)將任何其他流量直接中繼到其目的地。UDP管道用于處理localhost:1053/udp上的DNS請(qǐng)求,將對(duì)google.com的查詢替換為對(duì)www.sensepost.com的查詢,并將請(qǐng)求轉(zhuǎn)發(fā)到Google DNS服務(wù)器。
項(xiàng)目地址
Mallet:【GitHub傳送門】
參考資料
GitHub - netty/netty: Netty project - an event-driven asynchronous network application framework
https://netty.io/
https://netty.io/4.1/api/io/netty/channel/ChannelHandler.html