簡體   English   中英

如何解碼 .Java 文件中的協議緩沖區字符串

[英]How To Decode Protocol Buffer String in .Java file

我四處尋找名字來稱呼這個,但我找不到任何......它在一個朋友發送給我的.java文件中(他認為我會直接解碼它),不知道我這也是一個菜鳥......這是我想在不編譯Java文件的情況下解碼的字符串數據。

String[] descriptorData = {
  "\n0com/google/javascript/jscomp/function_" +
  "info.proto\022\006jscomp\"\277\002\n\026FunctionInformati" +
  "onMap\0223\n\005entry\030\001 \003(\n2$.jscomp.FunctionIn" +
  "formationMap.Entry\0225\n\006module\030e \003(\n2%.jsc" +
  "omp.FunctionInformationMap.Module\032\207\001\n\005En" +
  "try\022\n\n\002id\030\002 \002(\005\022\023\n\013source_name\030\003 \002(\t\022\023\n\013" +
  "line_number\030\004 \002(\005\022\023\n\013module_name\030\005 \002(\t\022\014" +
  "\n\004size\030\006 \002(\005\022\014\n\004name\030\007 \002(\t\022\027\n\017compiled_s" +
  "ource\030\010 \002(\t\032/\n\006Module\022\014\n\004name\030f \002(\t\022\027\n\017c" +
  "ompiled_source\030g \002(\tB \n\034com.google.javas","cript.jscompP\001"

如果我沒有弄錯的話,你看到的是一段自動生成的代碼,它描述了

message FunctionInformationMap {
  repeated group Entry = 1 {
    required int32 id = 2;
    required string source_name = 3;
    required int32 line_number = 4;
    required string module_name = 5;
    required int32 size = 6;
    required string name = 7;
    required string compiled_source = 8;
  }
}

它在這里https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/function_info.proto

生成的代碼可以在這里找到,例如這里

https://code.google.com/p/closure-compiler/source/browse/gen/com/google/javascript/jscomp/FunctionInfo.java?name=v20140407

Ps:我只是在谷歌上搜索了“com/google/javascript/jscomp/function_info.proto”,但你實際上可以逆轉這個過程。 這里的提示例如https://www.sysdream.com/reverse-engineering-protobuf-apps

我只是通過使用System.Out.PrintIn將字符串數據打印到 TXT 文件來解決這個問題...

就是這樣..謝謝...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM