FastBinaryEncoding icon indicating copy to clipboard operation
FastBinaryEncoding copied to clipboard

Is it possible to hide protocol field names

Open romanholidaypancakes opened this issue 2 years ago • 4 comments

image

image

We are using protobuf now, it will keep the protocol in binary, it can almost restore the protocol, I noticed that FastBinaryEncoding also has this problem, I hope not to keep any related strings with the protocol declaration

romanholidaypancakes avatar Jun 27 '22 02:06 romanholidaypancakes

You can annotate field as [Hidden]: image

And its output will be ***: image

chronoxor avatar Jun 27 '22 10:06 chronoxor

image The field names remain in the source code, and as long as you are familiar with fbe, you can still infer the message structure through reverse engineering

romanholidaypancakes avatar Jun 28 '22 01:06 romanholidaypancakes

Ok, as I understand you want to have 'transparent' fields that are present in objects/clases, but not serializable/deserializable and not output in logger/std::streams. Am I right?

When deserialzed this fields are skip and contain default or prev value.

Something like [NonSerialized] attribute in .NET: image

chronoxor avatar Jun 30 '22 15:06 chronoxor

No, serialization/deserialization is still supported, you can check flatbuffers or capnproto (they generate source code that doesn't keep any strings), just to protect data don't want any message interface strings to be preserved in source code. Because once retained it can be easily reverse engineered, which is especially important in our game, where we want to hide the message structure

romanholidaypancakes avatar Jul 01 '22 03:07 romanholidaypancakes