這篇文章主要為大家展示了“PBTK是一款什么工具”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PBTK是一款什么工具”這篇文章吧。
創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為象山企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),象山網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
Protobuf是Google設(shè)計(jì)的一種序列化格式,目前已被廣泛應(yīng)用在各種Android端、Web端和桌面端應(yīng)用程序之中。它由一種用于聲明數(shù)據(jù)結(jié)構(gòu)的語(yǔ)言組成,并且能夠根據(jù)目標(biāo)的實(shí)現(xiàn)方式,來(lái)為其編譯代碼以及其他類型的結(jié)構(gòu)數(shù)據(jù)。
PBTK(Protobuf toolkit)是一套功能完整的腳本,可以通過(guò)統(tǒng)一的GUI來(lái)訪問(wèn),PBTK主要提供了以下兩個(gè)重要功能:
一、從目標(biāo)程序中提取Protobuf結(jié)構(gòu),將其轉(zhuǎn)換回可讀的.protos格式,并且支持下列實(shí)現(xiàn):
1、所有主流的Java運(yùn)行時(shí)(base, Lite, Nano, Micro, J2ME),以及完整的Proguard支持;
2、二進(jìn)制代碼包含嵌入式反射元數(shù)據(jù)(通常是C++,有時(shí)是Java和其他綁定);
3、使用JsProtoUrl運(yùn)行時(shí)的Web應(yīng)用程序;
二、通過(guò)一個(gè)方便的圖形界面編輯、重放和模糊化發(fā)送到Protobuf網(wǎng)絡(luò)端點(diǎn)的數(shù)據(jù),該界面允許您實(shí)時(shí)編輯Protobuf消息的字段并查看結(jié)果。
PBTK要求使用Python >= v3.5、PyQt 5、Python-Protobuf 3以及其他的依賴組件(例如Chromium、jad和dex2jar等等)來(lái)運(yùn)行提取腳本。
Archlinux用戶可以直接運(yùn)行下列命令來(lái)完成安裝:
$ yaourt -S pbtk-git$ pbtk
在其他Linux發(fā)行版系統(tǒng)中,我們可以直接運(yùn)行下列命令完成工具的安裝:
$ sudo apt install python3-pip git openjdk-9-jre$ sudo pip3 install protobuf pyqt5 requests websocket-client$ git clonehttps://github.com/marin-m/pbtk$ cd pbtk$ ./gui.py
當(dāng)然了,PBTK也支持在Windows平臺(tái)殺昂使用,我們安裝好依賴組件并運(yùn)行GUI之后,工具將會(huì)提醒我們進(jìn)行下一步操作,按提示操作即可。
命令行使用
GUI可以通過(guò)主腳本來(lái)啟動(dòng):
./gui.py
下列腳本也可以單獨(dú)進(jìn)行使用,不需要通過(guò)GUI來(lái)啟動(dòng):
./extractors/jar_extract.py [-h] input_file [output_dir]./extractors/from_binary.py [-h] input_file [output_dir]./extractors/web_extract.py [-h] input_url [output_dir]
假設(shè)我們需要對(duì)一款A(yù)ndroid應(yīng)用程序進(jìn)行逆向分析,我們可以先選擇一個(gè)我們熟悉的反編譯工具,然后按常規(guī)方式并通過(guò)HTTP向目標(biāo)以POST數(shù)據(jù)的形式發(fā)送Protobuf格式內(nèi)容。
打開PBTK,我們將會(huì)看到下圖所示界面:
第一步就是將.protos文件轉(zhuǎn)換為text格式,如果目標(biāo)為Android應(yīng)用,我們可以打開一個(gè)APK文件,然后剩下的就交給PBTK吧!
完成之后,在命令行編輯器中切換到“~/.pbtk/protos/<your APK name>”路徑下,該App的.protos文件都在這個(gè)路徑下。
回到我們的反編譯工具,我們可以將感興趣的數(shù)據(jù)通過(guò)HTTPS來(lái)向目標(biāo)節(jié)點(diǎn)進(jìn)行發(fā)送,并通過(guò)調(diào)用由生成的代碼構(gòu)成的類來(lái)序列化Protobuf消息。
后面這個(gè)類應(yīng)該可以直接對(duì)應(yīng)到我們.protos目錄中的某一個(gè)結(jié)構(gòu),比如說(shuō)com.foo.bar.a.b將對(duì)應(yīng)com/foo/bar/a/b.proto。那么接下來(lái),我們選擇需要作為輸入的.proto文件,然后填寫一些相關(guān)的節(jié)點(diǎn)信息:
我們還可以提供一些樣本原始的Protobuf數(shù)據(jù)并發(fā)送至目標(biāo)節(jié)點(diǎn),相關(guān)數(shù)據(jù)可以通過(guò)mitmproxy或Wireshark捕獲,或以十六進(jìn)制編碼的形式粘貼進(jìn)去。
第三步,點(diǎn)擊按鈕,看看奇跡如何發(fā)生!工具將生成一個(gè)表示Protobuf結(jié)構(gòu)的樹形圖(重復(fù)的字段以“+”作為后綴,必需的字段沒(méi)有復(fù)選框):
只需在一個(gè)區(qū)域上鼠標(biāo)懸停即可獲得焦點(diǎn),如果字段是整數(shù)類型,請(qǐng)使用鼠標(biāo)滾輪將其遞增/遞減,懸停時(shí)也會(huì)顯示枚舉信息。
PBTK會(huì)將提取出的.proto信息存儲(chǔ)至“~/.pbtk/protos/”(Linux)或“%APPDATA%\pbtk\protos”(Windows)路徑下。基于HTTP節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)以JSON對(duì)象形式在“~/.pbtk/endpoints/”:
[{"request": {"transport": "pburl","proto": "www.google.com/VectorTown.proto","url": "https://www.google.com/VectorTown","pb_param": "pb","samples": [{"pb": "!....","hl": "fr"}]},"response": {"format": "other"}}]
以上是“PBTK是一款什么工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前標(biāo)題:PBTK是一款什么工具
本文鏈接:http://jinyejixie.com/article18/pgsodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、建站公司、網(wǎng)站收錄、服務(wù)器托管、動(dòng)態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)