文章目录

  • 环境搭建
  • 确认proto所在模块
  • 工具使用
  • 参考资料

导读:
Protobuf 是由 Google 开发的一种序列化格式,并在越来越多的 Android、Web、桌面和更多应用程序中使用。
在逆向工作中的,protobuf逆向的重要性也越来越多的体现来。
今天就跟大家一起使用pbtk神器,对steam平台协议,进行简单的分析。
pbtk的github地址:https://github.com/marin-m/pbtk
小编克隆岛gitee地址,方便国内用户下载:https://gitee.com/yeahmao/tools_reverse__pbtk
gitee项目中还将持续上传一些爬取到的proto代码。

环境搭建

准备个空的python虚拟环境:J:\_ALL\CODE\venv\py386_everything\Scripts

REM 下载代码
cd /d J:\_ALL\CODE\gitee\yeahmao\
git clone https://gitee.com/yeahmao/tools_reverse__pbtk
cd tools_reverse__pbtkREM python环境准备(记得设置阿里云镜像)
J:\_ALL\CODE\venv\py386_everything\Scripts\activate.bat
pip3 install protobuf pyqt5 pyqtwebengine requests websocket-client
REM 测试环境是否搭建成功,出现如下图片,即表示环境搭建成功了
python gui.py

确认proto所在模块

启动steam,通过CheatEngine搜索steam进程内存,如下图:


选中绿色结果,右键(或者ctrl+B)浏览内存区域,确认内存内容和内存所在模块。


通过上述方法,我们可以判断出以下模块包含proto信息:

  • steam.exe
  • steamclient.dll
  • steamui.dll
  • steamservice.dll

工具使用

这里我们使用from_binary.py直接解析可执行文件就能拿到proto原始文件了。

对于一些vmp加壳的可执行程序,我们需要通过第三方工具dump下内存,然后再执行from_binary.py

python ./extractors/from_binary.py "G:\Program Files (x86)\Steam\steam.exe" _proto\steam\steam.exe
python ./extractors/from_binary.py "G:\Program Files (x86)\Steam\steamclient.dll" _proto\steam\steamclient.dll
python ./extractors/from_binary.py "G:\Program Files (x86)\Steam\steamui.dll" _proto\steam\steamui.dll
python ./extractors/from_binary.py "G:\Program Files (x86)\Steam\bin\steamservice.dll" _proto\steam\steamservice.dll

参考资料

  • qq群:夜猫逐梦技术交流裙/953949723

**ps:**文章中内容仅用于技术交流,请勿用于违规违法行为。

[逆向工具] 详解pbtk解析steam中的protobuf协议相关推荐

  1. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  2. 详解MindManager 15中文版中格式刷工具

    2019独角兽企业重金招聘Python工程师标准>>> 制作MindManager思维导图时,其中很多资源来源于不同的外部资料,因为来源不同,复制粘贴的格式就可能不同. 巧妙使用Mi ...

  3. Chrome开发者工具详解(4)-Profiles面板

    Chrome开发者工具详解(4)-Profiles面板 如果上篇中的Timeline面板所提供的信息不能满足你的要求,你可以使用Profiles面板,利用这个面板你可以追踪网页程序的内存泄漏问题,进一 ...

  4. python嗅探工具详解附源码(使用socket,带tkinter界面)

    python嗅探工具详解(带tkinter界面) 点击详见原理 点击详见原理 TCP/IP协议号补充 必备基础知识 IP数据包格式 详见点此 TCP报文格式 详见点此 struct模块 在Python ...

  5. linux cron实例,cron,linux定时实施工具详解及实例

    cron,linux定时执行工具详解及实例 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关 ...

  6. 详解Java解析XML的四种方法

    http://developer.51cto.com  2009-03-31 13:12  cnlw1985  javaeye  我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...

  7. centos rpm 安装 perl_XtraBackup工具详解 Part 2 xtrabackup安装

    实验环境 此次实验的环境如下 MySQL 5.7.25 Redhat 6.10 1. xtrabackup版本 我们在官方网站可以看到xtrabackup有多个版本 https://www.perco ...

  8. 详解Java多线程编程中LockSupport类的线程阻塞用法

    转载自  详解Java多线程编程中LockSupport类的线程阻塞用法 LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语.LockSupport实际 ...

  9. parted工具详解

    通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大:而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘.但是现在的磁盘空间很多都已经是 ...

最新文章

  1. 微博php sdk,手机第三方新浪微博登录php api实现分析
  2. rust种的南瓜为什么老是消失_冷天早餐别将就,用南瓜和萝卜这样做,鲜香松软,营养好吃又管饱...
  3. 日常收集C#接口知识(知识全面)
  4. STL_stack/queue
  5. pycharm下打开、执行并调试scrapy爬虫程序
  6. lua 函数回调技巧
  7. Apollo添加部门
  8. android通用adapter,Android通用ListViewAdapter的编写。
  9. 寒假作业1 打印沙漏
  10. dataframe动态命名(读取不同文件并规律命名)
  11. 中国数码门锁市场趋势报告、技术动态创新及市场预测
  12. 数据库DataBase
  13. Python中的数值运算与逻辑运算
  14. 用python对数据进行主成分分析、类概念描述及特征化分析-实验报告
  15. 好家伙谷歌翻译又不能用了(有效解决方法)
  16. 51单片机I/O端口的结构和工作原理
  17. 使用Tensorflow训练LSTM+Attention中文标题党分类
  18. ffmpeg-python库的使用翻译(三)
  19. HINSTANCE初了解
  20. uniapp打包成h5页面

热门文章

  1. java工具类怎么写_常用的Java工具类——十六种
  2. python中爬虫隐藏身份的设置
  3. 人脸表情识别概述(一)
  4. google api 得到 天气
  5. GOOGLE Weather API 一套google天气图标
  6. java语言的编译器_JAVA语言编译器是一个CASE工具。()。
  7. canvas画小黄人
  8. [Samuel Ko]——我的2020年回顾
  9. laravel-admin多图上传小技巧
  10. 无线网卡、无线模块和无线模组的区别