protodec is a tool to decompile protobuf parser/serializer classes compiled by protoc, from dotnet assemblies back into .proto definitions
Go to file
Xpl0itR 68ee943b9d
search loaded types for the IMessage interface before loading the Google.Protobuf DLL
also make lambdas static where possible
2024-03-19 00:11:12 +00:00
.github/workflows More improvements 2024-01-22 03:06:56 +00:00
src search loaded types for the IMessage interface before loading the Google.Protobuf DLL 2024-03-19 00:11:12 +00:00
.gitignore Initial commit 2023-04-20 23:01:53 +01:00
LICENSE Initial commit 2023-04-20 23:01:53 +01:00
README.md More improvements 2024-01-22 03:06:56 +00:00
protodec.sln Add an option to skip parsing properties that aren't decorated with the protoc attribute 2023-12-25 01:58:12 +00:00

README.md

protodec

A tool to decompile protobuf classes compiled by protoc, from CIL assemblies back into .proto definitions.

Usage

Usage: protodec(.exe) <target_assembly_path> <out_path> [options]
Arguments:
  target_assembly_path  Either the path to the target assembly or a directory of assemblies, all of which be parsed.
  out_path              An existing directory to output into individual files, otherwise output to a single file.
Options:
  --skip_enums                                Skip parsing enums and replace references to them with int32.
  --skip_properties_without_protoc_attribute  Skip properties that aren't decorated with `GeneratedCode("protoc")` when parsing

Limitations

  • Integers are assumed to be (u)int32/64 as CIL doesn't differentiate between them and sint32/64 and (s)fixed32/64.
  • When decompiling from Il2CppDumper DummyDLLs
    • The Name parameter of OriginalNameAttribute is not dumped. In this case, the CIL enum field names are used after conforming them to protobuf conventions

License

This project is subject to the terms of the Mozilla Public License, v. 2.0.