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