溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PBTK是一款什么工具

發(fā)布時間:2021-12-28 10:47:44 來源:億速云 閱讀:506 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“PBTK是一款什么工具”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“PBTK是一款什么工具”這篇文章吧。

套件介紹

Protobuf是Google設計的一種序列化格式,目前已被廣泛應用在各種Android端、Web端和桌面端應用程序之中。它由一種用于聲明數(shù)據結構的語言組成,并且能夠根據目標的實現(xiàn)方式,來為其編譯代碼以及其他類型的結構數(shù)據。

PBTK(Protobuf toolkit)是一套功能完整的腳本,可以通過統(tǒng)一的GUI來訪問,PBTK主要提供了以下兩個重要功能:

一、從目標程序中提取Protobuf結構,將其轉換回可讀的.protos格式,并且支持下列實現(xiàn):

1、所有主流的Java運行時(base, Lite, Nano, Micro, J2ME),以及完整的Proguard支持;

2、二進制代碼包含嵌入式反射元數(shù)據(通常是C++,有時是Java和其他綁定);

3、使用JsProtoUrl運行時的Web應用程序;

二、通過一個方便的圖形界面編輯、重放和模糊化發(fā)送到Protobuf網絡端點的數(shù)據,該界面允許您實時編輯Protobuf消息的字段并查看結果。

PBTK是一款什么工具

工具安裝

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

當然了,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]

常規(guī)工作流

假設我們需要對一款Android應用程序進行逆向分析,我們可以先選擇一個我們熟悉的反編譯工具,然后按常規(guī)方式并通過HTTP向目標以POST數(shù)據的形式發(fā)送Protobuf格式內容。

打開PBTK,我們將會看到下圖所示界面:

PBTK是一款什么工具

第一步就是將.protos文件轉換為text格式,如果目標為Android應用,我們可以打開一個APK文件,然后剩下的就交給PBTK吧!

完成之后,在命令行編輯器中切換到“~/.pbtk/protos/<your APK name>”路徑下,該App的.protos文件都在這個路徑下。

回到我們的反編譯工具,我們可以將感興趣的數(shù)據通過HTTPS來向目標節(jié)點進行發(fā)送,并通過調用由生成的代碼構成的類來序列化Protobuf消息。

PBTK是一款什么工具

后面這個類應該可以直接對應到我們.protos目錄中的某一個結構,比如說com.foo.bar.a.b將對應com/foo/bar/a/b.proto。那么接下來,我們選擇需要作為輸入的.proto文件,然后填寫一些相關的節(jié)點信息:

PBTK是一款什么工具

我們還可以提供一些樣本原始的Protobuf數(shù)據并發(fā)送至目標節(jié)點,相關數(shù)據可以通過mitmproxy或Wireshark捕獲,或以十六進制編碼的形式粘貼進去。

第三步,點擊按鈕,看看奇跡如何發(fā)生!工具將生成一個表示Protobuf結構的樹形圖(重復的字段以“+”作為后綴,必需的字段沒有復選框):

PBTK是一款什么工具

只需在一個區(qū)域上鼠標懸停即可獲得焦點,如果字段是整數(shù)類型,請使用鼠標滾輪將其遞增/遞減,懸停時也會顯示枚舉信息。

本地數(shù)據存儲

PBTK會將提取出的.proto信息存儲至“~/.pbtk/protos/”(Linux)或“%APPDATA%\pbtk\protos”(Windows)路徑下。基于HTTP節(jié)點的數(shù)據存儲以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是一款什么工具”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI