私はいくつかのバイナリファイルを見たことがあります。開発者は少し編集的で、バイナリ内のすべてのテキストを難読化しました。私はこれまでのようなことは何も見ていなかったし、ELFを隠し文字でコンパイルするための明白なオプションも見つけられなかった。標準のOS API文字列でさえ隠されていました。ELFバイナリのテキストを基本的に暗号化する方法は?
これらのプログラムでは、実行時に公開されていないテキストはありません。未知のテキストを除きます。しかし、赤い旗だけをたくさん隠していると、それは疑わしいように見える。
ELFにコンパイルされたテキストを簡単に隠す方法はありますか?簡単なコンパイラ/リンクオプションを使用してください。私は、デコーダがmain()に挿入できると思いますが、どのようにテキストセクションを簡単にエンコードすることができますか?
コードで暗黙のデコーダをキーで使用する方法があると思います。次に、そのキーを使用してELFのテキストをエンコードします。そのため、簡単にエンコードできます。
どういうところですか?あなたの後のすべてが難読化されている場合は、固定キーを使用してXORするだけですが、「標準OS API文字列」とはどういう意味ですか?共有ライブラリからインポートされたシンボル?これは本当に奇妙なことです。私が考えることができるのは、ファイル全体を最初に解読するカスタムローダーだけです( 'upx'は圧縮のためのものです)。 –
簡単な方法があるのだろうかと思います。不明瞭化メソッドに関係なく。バイナリ内のテキストを隠すコンパイラオプションにスイッチを追加するとします。私はELFフォーマットをチェックアウトしましたが、フラグや何も隠されたテキストを指定したものでは何も目立っていませんでした。その後、ELFローダによってデコードされます。 "標準OS API文字列"によって、私はライブラリまたはソリブの名前を意味しました。それを言って面白い方法がありました。 :-) –
いいえ、「簡単な」方法はありません。このような機能は通常はあまり意味がありません。さて、chqrlieの答えを見て、私の自身のコメントを再読することを除いて - 実際に 'upx'(または同様のツール)!それは何も暗号化しませんが、もちろん圧縮されたテキストも直接読むことはできません;) –