
標準的な解決策は length + "#" + string に依存しています。これは簡単にリバースできます。
sbox は constexpr AES-128 ブロック暗号を利用して、文字列を高エントロピーノイズに変換します。
Neetcode の「Encode and Decode Strings」チャレンジの際に、難読化プロジェクト Obfusk8 から AES エンジンを移植しました。
実装は初回提出で 7ms で通過しました。暗号セキュリティはパフォーマンスとトレードオフになるべきではありません。
strings.exe(または Linux の strings)は結果を返しません。実装の詳細については、EXAMPLES フォルダを確認してください。
複数文字列の例 (sbox_test.cpp):
_OBF(str) マクロを使用して vector<string> を扱う方法を示します。バッチ処理に便利で、転送に適した難読化に有用です。
単一文字列の例 (sbox_test1.cpp):
ObfStr(str) マクロを使用したアトミックな実体化を示します。単一変数代入に最適です:
string s = ObfStr("ama obfuscation addicted");
7ms の実行時間。
過剰であっても最適であり得ることを証明しています。
作者: x86byte