码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • protobuf 黑盒调用 blackboxprotobuf 不用proto文件 application/x-protobuf 超短保姆级教程


    看了网上很多教程使用blackboxprotobuf,有一个小坑,在复制protobuf到代码里面的时候,应该转成hex或者base64,在代码里面转码,这样才能出数据

    JS逆向-Protobuf逆向解析

    装上blackboxprotobuf

    https://github.com/nccgroup/blackboxprotobuf
    里面介绍啥也没写

    pip install blackboxprotobuf
    
    • 1

    charles或fiddler抓包

    在这里插入图片描述
    复制所有到vscode.按住shift+alt,列选中hex部分.
    在这里插入图片描述
    把复制的内容丢到 import blackboxprotobuf,base64 print(blackboxprotobuf.decode_message(base64.b64decode('base64内容')))

    输出为json

    ({'1': b'fdgdfghwer@gmail.com', '2': b'sdffh234sdfsdf', '3': 643, '4': b'en', '5': b'Asia/Shanghai', '6': b'03AIIukzgLSizHqFySxBYM54Omyhqiw7xRueLtVV5MzdxsqYT8JA4DmURC1JUNJQbgZfcEbFtGLUAbJ6SNQKZmoH8DvNNofli3Bj4MCJvCZoRU5Q720vIMIHNir5IlaG3EjZU8-YC--uCC_kZxQsKqthXXKR5aV5IPCsjNQzqJhtHhAjnLM8B_3rwK5qmQxg3xv7OoDfHpUnwHZk8ZO8Htp7jhcXhpFJr2j5kPb0lV-jwYZ7WS-82oytPxSfDhPIiwmtBbxr0jodlZveHjKcwvWlrJE5jAWo3VOdpTfuJAnxljDLjbSOxazsG2XDfpkt0CCbeVAxKk9YeSA_-j8iioQUN5MT13_LLtUfj2NNwbvJhWkYiOHU-NU6H_ScZXpjwZPAVvVela3aMK1eL7Nh7AMnLsB_XlS62XT__7E7PfCORNcNHxO556Jd8MWZnb3VOlVBlHxTj4luVB7vLGsDCqfLYApTFxXqpQ9du4u8gR9Sdh5NstjZ_HXZxCasCD2MUVTxleNggCr033Z5Hdyvm-dnAwVRA8KwvEnu6WEQcwBpYpBXX1lK8LSebMm5uFBUrn2tXgrrAaFfhg6u8J_EFTcTAySGaxA9ZgRPZercvKzdEC7Bbyol4MpPL4Epz9kYWxWuNMTo_smL-_F_cKMR8jb106HgLQ04ptKEn5ZeGK_u_aMBC7feMdS3dXLkOU3EbRKHbQLLLt4hs5kDv6sDiRGWrz0DT5FbfcgeFXTR_5A-6eQo0HzfkxfK3D1e2i25A4rAH5Hs-YNw3o21Nl0ZVdf8-rZiq0YcI2qGtddrHgsOvO9Srog6hy7o1EkL7qin990qUIKznIMPkrRLoHYgYC6goJqeXeArXIKaa-GBAf10Y1bij9IGl4QXgO5lMKDBagNcCOG77ghZeigA4YYDtjW5a19iIDi-wtP_lYCpFmDxhhF_CyjPfWE6ROF-eFyaXfBQSLWOArNjvr5xI--6ANWolHgfVA0xlpvnO5GgLjsLaGx7K29J78ojlmnNiFzSBjpjFYmgi6KTiY2PvSaR2ws4YV-KOXaFrmsMPAle534eFY25KOr-8dkAGNz716vJ1vDe6vIjbgaJA7flgK-LoqU_gGiCA0khDH2lA_4ymdg415_Q6CPFMcvJ364DHyxSlnTQ2k1usss15erDx_brNKeZv2I2Eyenm_40CtWvFaFQ70AVsJN7yfl_wfKQ2ug36dbaUmV5Gw0rM5Uc1hA-2uKiGr2U-KZDV1w8LPod4NtW5SV8fpXZ17yoPJl6TjseFHkukVI2kDpIuph5siJHntbEDajUOh-V0J5cFXF30UK-MYpupcMyLXBwXDiFNxW7QUUJhWM2InDHgtrbh6x4-oUrtuL859KkzTnDTA4nvxH20ABRfHFqrWc2NfySPbpSBfYaoOlMfEzXfXsoL3pABrxZxm-q9uoSqy4cG8h-YUHo5zby4o9kc4UiZQhd5V4ag4jhplx9yKJclMh-SM1l4pAYYlxQHEJXD0nPWvc8j19COVSRNLrlP6yLllaZrj4db65Av8UfnStJIaEhMVLvnqsaHDywGQb-K0kXhD17yRwVQMFzPnoekdQKY', '7': 5, '8': 0, '9': b'sdf', '10': b'sdgsd'}
    
    
    
    {'1': {'type': 'bytes', 'name': ''}, '2': {'type': 'bytes', 'name': ''}, '3': {'type': 'int', 'name': ''}, '4': {'type': 'bytes', 'name': ''}, '5': {'type': 'bytes', 'name': ''}, '6': {'type': 'bytes', 'name': ''}, '7': {'type': 'int', 'name': ''}, '8': {'type': 'int', 'name': ''}, '9': {'type': 'bytes', 'name': ''}, '10': {'type': 'bytes', 'name': ''}})
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    第一行是内容,第二行是黑盒格式.

    import blackboxprotobuf,base64
    message_type = {
    '1': {'type': 'bytes', 'name': 'email'},
    '2': {'type': 'bytes', 'name': 'password'},
    '3': {'type': 'int', 'name': 'countryCode'},
    '4': {'type': 'bytes', 'name': 'langCode'},
    '5': {'type': 'bytes', 'name': 'timeZone'},
    '6': {'type': 'bytes', 'name': 'captchaResponse'},
    '7': {'type': 'int', 'name': 'captchaType'},
    '8': {'type': 'int', 'name': 'variant'},
    '9': {'type': 'bytes', 'name': 'firstName'},
    '10': {'type': 'bytes', 'name': 'lastName'},
    }
    before_data = {'1': "fdgdfghwer@gmail.com",
    '2': "sdffh234sdfsdf",
    '3': 643,
    '4': "en",
    '5': "Asia/Shanghai",
    '6': "03AIIukzgLSizHqFySxBYM54Omyhqiw7xRueLtVV5MzdxsqYT8JA4DmURC1JUNJQbgZfcEbFtGLUAbJ6SNQKZmoH8DvNNofli3Bj4MCJvCZoRU5Q720vIMIHNir5IlaG3EjZU8-YC--uCC_kZxQsKqthXXKR5aV5IPCsjNQzqJhtHhAjnLM8B_3rwK5qmQxg3xv7OoDfHpUnwHZk8ZO8Htp7jhcXhpFJr2j5kPb0lV-jwYZ7WS-82oytPxSfDhPIiwmtBbxr0jodlZveHjKcwvWlrJE5jAWo3VOdpTfuJAnxljDLjbSOxazsG2XDfpkt0CCbeVAxKk9YeSA_-j8iioQUN5MT13_LLtUfj2NNwbvJhWkYiOHU-NU6H_ScZXpjwZPAVvVela3aMK1eL7Nh7AMnLsB_XlS62XT__7E7PfCORNcNHxO556Jd8MWZnb3VOlVBlHxTj4luVB7vLGsDCqfLYApTFxXqpQ9du4u8gR9Sdh5NstjZ_HXZxCasCD2MUVTxleNggCr033Z5Hdyvm-dnAwVRA8KwvEnu6WEQcwBpYpBXX1lK8LSebMm5uFBUrn2tXgrrAaFfhg6u8J_EFTcTAySGaxA9ZgRPZercvKzdEC7Bbyol4MpPL4Epz9kYWxWuNMTo_smL-_F_cKMR8jb106HgLQ04ptKEn5ZeGK_u_aMBC7feMdS3dXLkOU3EbRKHbQLLLt4hs5kDv6sDiRGWrz0DT5FbfcgeFXTR_5A-6eQo0HzfkxfK3D1e2i25A4rAH5Hs-YNw3o21Nl0ZVdf8-rZiq0YcI2qGtddrHgsOvO9Srog6hy7o1EkL7qin990qUIKznIMPkrRLoHYgYC6goJqeXeArXIKaa-GBAf10Y1bij9IGl4QXgO5lMKDBagNcCOG77ghZeigA4YYDtjW5a19iIDi-wtP_lYCpFmDxhhF_CyjPfWE6ROF-eFyaXfBQSLWOArNjvr5xI--6ANWolHgfVA0xlpvnO5GgLjsLaGx7K29J78ojlmnNiFzSBjpjFYmgi6KTiY2PvSaR2ws4YV-KOXaFrmsMPAle534eFY25KOr-8dkAGNz716vJ1vDe6vIjbgaJA7flgK-LoqU_gGiCA0khDH2lA_4ymdg415_Q6CPFMcvJ364DHyxSlnTQ2k1usss15erDx_brNKeZv2I2Eyenm_40CtWvFaFQ70AVsJN7yfl_wfKQ2ug36dbaUmV5Gw0rM5Uc1hA-2uKiGr2U-KZDV1w8LPod4NtW5SV8fpXZ17yoPJl6TjseFHkukVI2kDpIuph5siJHntbEDajUOh-V0J5cFXF30UK-MYpupcMyLXBwXDiFNxW7QUUJhWM2InDHgtrbh6x4-oUrtuL859KkzTnDTA4nvxH20ABRfHFqrWc2NfySPbpSBfYaoOlMfEzXfXsoL3pABrxZxm-q9uoSqy4cG8h-YUHo5zby4o9kc4UiZQhd5V4ag4jhplx9yKJclMh-SM1l4pAYYlxQHEJXD0nPWvc8j19COVSRNLrlP6yLllaZrj4db65Av8UfnStJIaEhMVLvnqsaHDywGQb-K0kXhD17yRwVQMFzPnoekdQKY",
    '7': 5,
    '8': 0,
    '9': "sdf",
    '10': "sdgsd"
    }
    form_data = blackboxprotobuf.encode_message(before_data, message_type)
    print(form_data)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    照着格式写内容,"name"只是备注,可以不填~

    输出来的就是能用的protobuf了.

  • 相关阅读:
    竞赛 深度学习乳腺癌分类
    利用 API 接口进行自动代码生成的最佳实践
    【面试普通人VS高手系列】CPU飙高系统反应慢怎么排查?
    MySql分区
    Thread类中run和start的区别
    Windows 和 Linux 系统下,如何查看 Redis 的版本号?
    数组处理方法总结
    【数据结构】Map和Set
    洛谷基础题练习3
    MVCC和BufferPool缓存机制
  • 原文地址:https://blog.csdn.net/weixin_42453905/article/details/126992129
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号