- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用 protoc 从生成的 pb2.py 中获取 proto 文件? gRPC 是否可以进行相同的逆向工程?
最佳答案
_pb2.py
文件的格式因 protobuf-python 版本而异,但大多数版本内部都有一个名为 serialized_pb
的字段。这包含 FileDescriptorProto 中 .proto
文件的整个结构格式:
serialized_pb=b'\n\x0c...'
这可以传递给 protoc
编译器来为其他语言生成 header 。但是,必须先将其放入 FileDescriptorSet
中才能正确匹配格式。这可以使用 Python 完成:
import google.protobuf.descriptor_pb2
fds = google.protobuf.descriptor_pb2.FileDescriptorSet()
fds.file.append(google.protobuf.descriptor_pb2.FileDescriptorProto())
fds.file[0].ParseFromString(b'\n\x0c... serialized_pb data ....')
open('myproto.txt', 'w').write(str(fds))
open('myproto.pb', 'wb').write(fds.SerializeToString())
上面的代码片段将人类可读的版本保存到 myproto.txt
并将名义上与 protoc
兼容的格式保存到 myproto.pb
.文本表示如下所示:
file {
name: "XYZ.proto"
dependency: "dependencyXYZ.proto"
message_type {
name: "MyMessage"
field {
name: "myfield"
number: 1
label: LABEL_OPTIONAL
type: TYPE_INT32
}
...
例如,现在可以使用以下方法生成 C++ header :
protoc --cpp_out=. --descriptor_set_in=myproto.pb XYZ.proto
请注意,XYZ.proto
必须与描述符集中的文件名相匹配,您可以在 myproto.txt
中查看。然而,如果文件有依赖关系,这种方法很快就会变得困难,因为所有这些依赖关系都必须收集在同一个描述符集中。在某些情况下,仅使用文本表示手动重写 .proto
文件可能更容易。
关于protocol-buffers - 从使用 protoc 生成的 pb2.py 逆向工程 .proto 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70479912/
我有 *.ipa 文件,它是 iphone 应用程序。 是否可以在该 ipa 中使用逆向工程并提取代码..? 最佳答案 嗯,这不是真正的黑客攻击,但它确实可以帮助您识别 UI 的某些部分...请执行以
我一直在尝试对游戏的功能进行逆向工程,但我有点困惑。我对逆向工程还很陌生(顺便说一句,我正在使用 ollydbg),所以我还不太了解所有的技巧和细节。 无论如何这是我的问题。当您在游戏中拾取任何元素时
我被要求抓取一个 Flash 网站,该网站似乎正在通过 AMF 协议(protocol)使用某种服务器端调用。我完全不熟悉这个协议(protocol),但找到了这个库(http://www.pyamf
我的问题是我正在使用一个巨大的网络应用程序(学校系统),没有内部逻辑的文档。我需要对特定值进行批量更新,但我不知道MySQL数据库中的哪些表包含要更新的相关数据。该应用程序是从 php 自行运行的。有
我正在学习如何逆向一个程序,我想知道..如果我用调试信息编译: gcc -g .... 这对逆向过程有什么帮助吗?如果我这样做,我会提供额外的信息吗?我找不到有关该主题的任何信息。 最佳答案 它通过将
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
今天我决定使用 IDA Pro 反编译一个用 Visual C++ 编写的简单“Hello world”程序。 根据我以前的知识,我确定我不会在可执行文件入口点找到对 printf 的立即调用,我是对
我正在使用 PowerDesigner 为我的 SQL Server 数据库建模。我使用逆向工程选项来导入我的数据库。我的问题是表中的默认数据未导入。 有人知道如何导入表格中的数据吗? 最佳答案 我们
我一直在分析一些 230V 通信并试图找出协议(protocol)的校验和算法。从我了解到的通信结构如下: 第一个 block 总是相同的,必须是某种开始结构(910hex) 然后嵌套5个 block
在 AmigaOS 中的 Devs:Monitors 中找到的文件,它们包含什么? 它们的内部格式是什么?您如何修补一个或从头开始创建一个? 最佳答案 Amiga 程序 MonEd ( http://
我正在使用 VS2013 更新 3 的“逆向工程”模型优先功能从现有数据库开发 EF 模型。不幸的是,我无法完全控制数据库架构,它使用表和列前缀(例如 tblPerson , cFirstName,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在尝试对 APK 文件进行逆向工程。 我尝试了 apk2jar 来获取类和资源文件。但我无法解压缩 Assets 。 有人可以帮忙吗? 最佳答案 使用 apktool。它将对所有布局、值、 Ass
我正在尝试解码由 Android instagram 应用程序发送到 graph.instagram.com 的帖子数据。该问题与此处发现的问题类似: Reverse Engineer HTTP re
我想查明用 C/C++ 编写的应用程序究竟在哪里失败。我无法直接调试应用程序,既不使用 gdb/lldb 也不使用 IDE,因为应用程序是由程序启动的(它是 webots 机器人模拟软件的机器人 Co
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
我有一个最初用 VS2005 编写的小实用程序。 我需要做一点小改动,但是其中一个 dll 的源代码在某处丢失了。 是否有免费或价格合理的工具将 dll 反向工程回 C++ 代码。 最佳答案 Hex-
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我想知道是否有人知道如何对 Access 数据库进行逆向工程。我希望能够生成用于创建数据库表并将所有记录插入表中的 SQL 代码。换句话说,我想创建类似于 MySQL 转储文件的内容。 任何想法都会很
String.GetHashCode 的行为取决于程序架构。所以它将在 x86 中返回一个值,在 x64 中返回一个值。我有一个必须在 x86 上运行的测试应用程序,它必须预测必须在 x64 上运行的
我是一名优秀的程序员,十分优秀!