0

純粋に探索的な方法で、単純なプログラムの hexediting を試してみたいと思っています。これが問題のプログラムの機能を危険にさらすことはわかっています (それで問題ありません) が、ランダムに編集されたバイナリを実行することによるシステム (Linux) へのリスクは何ですか?

起こりうる最悪の事態は何ですか?常に避けるべき特定の変更、講じることができる予防策はありますか? これに関連するリソースはありますか? (調べてみましたが、これに当てはまるものは見つかりませんでした)

編集: 実際にランダムに編集するつもりはないことを明記する必要があります。それは単なる仮説です。

4

1 に答える 1

0

自信を持って 16 進エディターを使用したい場合は、コンパイルされたプログラム (特に ELF 実行可能ファイル。最近の Linux では ELF が一般的な実行可能形式であるため) の構造を理解しておくと役立ちます。ファイル内の特定の場所は、実際にはプログラム自体の一部ではありませんが、プログラムをロードして実行する方法を Linux に指示するメタデータです。

また、システムの CPU のマシン コード (または少なくともアセンブリ言語) の知識も非常に貴重です。

いずれにせよ、明らかに文字列データではないものを編集すると、メタデータまたは CPU に何をすべきかを伝える実際の命令のいずれかが変更されます。自分が何をしているのかを正確に理解せずにどちらかを実行すると、運が良ければプログラムがクラッシュします。運が悪ければ、変更された部分が実行されるたびに、静かに微妙に何かを破損させ、元に戻すには手遅れになるまで気付かないかもしれません。CPUの実際の言語である機械語は、ライブラリの制限などに拘束されません。あなたと同じようにマシンにアクセスできます (ルートとして実行するように設定されている場合や、特定の機能を使用して実行するように設定されている場合は、さらに多くの場合もあります)。したがって、あなたが与える可能性のある損害について、プログラムも同様に行うことができます.

于 2013-12-02T00:30:14.433 に答える