Projects STRLCPY GoReSym Commits 25549bbf
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■ ■
    GoReSym.proto
    skipped 2 lines
    3 3  option go_package = "protobuf/GoReSym/";
    4 4   
    5 5  message PcLnTabMetadata {
    6  - uint64 va = 1;
    7  - string version = 2;
    8  - string endianess = 3;
    9  - uint32 cpuQuantum = 4;
    10  - string cpuQuantumStr = 5;
    11  - uint32 pointerSize = 6;
     6 + uint64 va = 1 [json_name="VA"];
     7 + string version = 2 [json_name="Version"];
     8 + string endianess = 3 [json_name="Endianess"];
     9 + uint32 cpuQuantum = 4 [json_name="CpuQuantum"];
     10 + string cpuQuantumStr = 5 [json_name="CpuQuantumStr"];
     11 + uint32 pointerSize = 6 [json_name="PointerSize"];
    12 12  }
    13 13   
    14 14  message FuncMetadata {
    15  - uint64 start = 1;
    16  - uint64 end = 2;
    17  - string packageName = 3;
    18  - string fullName = 4;
     15 + uint64 start = 1 [json_name="Start"];
     16 + uint64 end = 2 [json_name="End"];
     17 + string packageName = 3 [json_name="PackageName"];
     18 + string fullName = 4 [json_name="FullName"];
    19 19  }
    20 20   
    21 21  message GoSlice {
    22  - uint64 data = 1;
    23  - uint64 len = 2;
    24  - uint64 capacity = 3;
     22 + uint64 data = 1 [json_name="Data"];
     23 + uint64 len = 2 [json_name="Len"];
     24 + uint64 capacity = 3 [json_name="Capacity"];
    25 25  }
    26 26   
    27 27  message ModuleData {
    28  - uint64 va = 1;
    29  - uint64 types = 2;
    30  - uint64 etypes = 3;
    31  - GoSlice typeLinks = 4;
    32  - GoSlice itabLinks = 5;
    33  - GoSlice legacyTypes = 6;
     28 + uint64 va = 1 [json_name="VA"];
     29 + uint64 types = 2 [json_name="Types"];
     30 + uint64 etypes = 3 [json_name="ETypes"];
     31 + GoSlice typeLinks = 4 [json_name="Typelinks"];
     32 + GoSlice itabLinks = 5 [json_name="ITablinks"];
     33 + GoSlice legacyTypes = 6 [json_name="LegacyTypes"];
    34 34  }
    35 35   
    36 36  message Type {
    37  - uint64 va = 1;
    38  - string str = 2;
    39  - string kind = 3;
    40  - string reconstructed = 4;
     37 + uint64 va = 1 [json_name="VA"];
     38 + string str = 2 [json_name="Str"];
     39 + string kind = 3 [json_name="Kind"];
     40 + string reconstructed = 4 [json_name="Reconstructed"];
    41 41  }
    42 42   
    43 43  message Module {
    44  - string path = 1;
    45  - string version = 2;
    46  - string sum = 3;
     44 + string path = 1 [json_name="Path"];
     45 + string version = 2 [json_name="Version"];
     46 + string sum = 3 [json_name="Sum"];
     47 + string replace= 4 [json_name="Replace"];
    47 48  }
    48 49   
    49 50  message BuildSetting {
    50  - string key = 1;
    51  - string value = 2;
     51 + string key = 1 [json_name="Key"];
     52 + string value = 2 [json_name="Value"];
    52 53  }
    53 54   
    54 55  message BuildInfo {
    55  - string goVersion = 1;
    56  - string path = 2;
    57  - Module main = 3;
    58  - repeated Module deps = 4;
    59  - repeated BuildSetting settings = 5;
     56 + string goVersion = 1 [json_name="GoVersion"];
     57 + string path = 2 [json_name="Path"];
     58 + Module main = 3 [json_name="Main"];
     59 + repeated Module deps = 4 [json_name="Deps"];
     60 + repeated BuildSetting settings = 5 [json_name="Settings"];
    60 61  }
    61 62   
    62 63  message ExtractMetadata {
    63  - string version = 1;
    64  - string buildId = 2;
    65  - string arch = 3;
    66  - string os = 4;
    67  - PcLnTabMetadata tabMeta = 5;
    68  - ModuleData moduleMeta = 6;
    69  - repeated Type types = 7;
    70  - repeated Type interfaces = 8;
    71  - BuildInfo buildInfo = 9;
    72  - repeated string files = 10;
    73  - repeated FuncMetadata userFunctions = 11;
    74  - repeated FuncMetadata stdFunctions = 12;
     64 + string version = 1 [json_name="Version"];
     65 + string buildId = 2 [json_name="BuildId"];
     66 + string arch = 3 [json_name="Arch"];
     67 + string os = 4 [json_name="OS"];
     68 + PcLnTabMetadata tabMeta = 5 [json_name="TabMeta"];
     69 + ModuleData moduleMeta = 6 [json_name="ModuleMeta"];
     70 + repeated Type types = 7 [json_name="Types"];
     71 + repeated Type interfaces = 8 [json_name="Interfaces"];
     72 + BuildInfo buildInfo = 9 [json_name="BuildInfo"];
     73 + repeated string files = 10 [json_name="Files"];
     74 + repeated FuncMetadata userFunctions = 11 [json_name="UserFunctions"];
     75 + repeated FuncMetadata stdFunctions = 12 [json_name="StdFunctions"];
    75 76  }
     77 + 
  • ■ ■ ■ ■ ■ ■
    README.md
    skipped 8 lines
    9 9   
    10 10   
    11 11  # Usage
     12 +Refer to https://www.mandiant.com/resources/blog/golang-internals-symbol-recovery for reverse engineering details and example usage.
     13 + 
    12 14  You can download pre-built GoReSym binaries from the [Releases tab](https://github.com/mandiant/GoReSym/releases/) or build from source with a recent Go compiler:
    13 15   
    14 16  ```
    skipped 110 lines
Please wait...
Page is in error, reload to recover