逆向分析与测试套件:Protobuf toolkit,针对Android端、Web端和桌面端应用程序Protobuf
摘要:PBTK是Google设计的序列化格式,广泛用于Android,Web和桌面应用程序,由一种用于声明数据结构的语言组成,并可以根据目标的实现方式为目标编译代码和其他类型的结构化数据
Protobuf toolkit是一组完整的脚本,可以通过统一的GUI访问。PBTK主要提供以下两个重要功能:
首先,从目标程序中提取Protobuf结构,将其转换回可读的.protos格式,并支持以下实现:
1.所有主要的Java运行时(base,Lite,Nano,Micro,J2ME),并全面支持Proguard。
2.二进制代码包含嵌入式反射元数据(通常是C++,有时是Java和其他绑定)。
3.使用JsProtoUrl运行时的Web应用程序。
其次,编辑,重放和混淆通过方便的图形界面发送到Protobuf网络端点的数据。 该界面允许实时编辑Protobuf消息的字段并查看结果。
工具安装
PBTK需要Python> = v3.5,PyQt 5,Python-Protobuf 3和其他相关组件(例如Chromium,jad,dex2jar等)来运行提取脚本。
Archlinux用户可以直接运行以下命令来完成安装:
$ yaourt -S pbtk-git
$ pbtk
在其他Linux分发系统中,我们可以直接运行以下命令来完成该工具的安装:
$ sudo apt安装python3-pip git openjdk-9-jre
$ sudo pip3 install protobuf pyqt5请求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]
一般工作流程
假设我们需要在Android应用程序上执行反向分析,我们可以首先选择一个熟悉的反编译工具,然后以POST数据的形式以常规方式通过HTTP将Protobuf内容发送到目标。
打开PBTK,我们将看到如下所示的界面:
第一步是将.protos文件转换为文本格式。 如果目标是Android应用程序,我们可以打开一个APK文件,然后将其余文件留给PBTK!完成后,在命令行编辑器中切换到“~/.pbtk/protos/<your APK name>”路径。 该应用程序的.protos文件都在此路径中。回到我们的反编译工具,我们可以通过HTTPS将感兴趣的数据发送到目标节点,并通过调用由生成的代码组成的类来序列化Protobuf消息。
后者应直接对应于我们.protos目录中的结构,例如com.foo.bar.a.b将对应于com / foo / bar / a / b.proto。 然后,我们选择需要输入的.proto文件,然后填写一些相关的节点信息:
我们还可以提供原始Protobuf数据的一些样本,并将其发送到目标节点。 相关数据可以通过mitmproxy或Wireshark捕获,也可以以十六进制编码的形式粘贴。
第三步,单击按钮, 该工具将生成一个表示Protobuf结构的树形图:
只需将鼠标悬停在某个区域上即可获得焦点。 如果该字段是整数类型,请使用鼠标滚轮对其进行递增/递减,并且在悬停时也会显示枚举信息。
本地数据存储
PBTK会将提取的.proto信息存储在路径“〜/ .pbtk / protos /”(Linux)或“%APPDATA%\ pbtk \ protos”(Windows)中。 基于HTTP节点的数据存储采用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 Protobuf APP Android Web 应用程序
上一篇:历史上复制次数最多的代码:StackOverflow Java片段有一个Bug
下一篇:软件开发:选择 TypeScript 还是 JavaScript 由开发者决定
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了