バイナリ データ ファイルをコンパイル/逆コンパイルするための汎用ユーティリティまたはライブラリ?
-
23-09-2019 - |
質問
さまざまなバイナリ ファイル形式があり、それらを何らかのテキスト形式にダンプし、編集してから再コンパイルする必要があります (おそらく、バイナリ形式のわずかに異なるバージョンに)。もちろん、このようなことを行うために C/C++ で大量のユーティリティ コードを作成することもできますし、テキスト側 (XML や JSON など) にライブラリを活用することもできますが、これは頻繁に発生するタスク パターンです。私の仕事では、おそらくこの種の仕事用の何らかの汎用ツールがすでに存在しているはずだと私には思われます。
明らかに、バイナリ ファイル形式を記述する何らかの方法 (スキーマなど) が必要です。これには、すべての明らかなデータ型 (文字列、さまざまなサイズの整数、ブール値など。浮動小数点数も良いでしょう) をサポートする必要があります。また、カウント フィールド、長さフィールド、パディング/アライメントなど、データ ファイル内にある一般的なものをすべて処理します。バイナリ ファイルのエンディアンネスが、実行しているプラットフォームとは異なる場合があるため、エンディアンネスのサポートがあると便利です。
このようなものがまだ存在していないとしたら、私は非常に驚くでしょうが、これまで Google で調べたことがありませんでした (そのようなユーティリティやライブラリを簡潔に説明するにはどうすればよいでしょうか?)。私がこれに最も近いのは、「クラシック」Mac OS の時代に遡る Apple のリソース コンパイラ/デコンパイラ ユーティリティでした。これらは C に似た構文を使用し、さまざまなバイナリ リソースの形式を記述するヘッダー ファイル内のリソース テンプレート定義を使用し、この C に似たソース構文とバイナリ リソースの間でコンパイル/逆コンパイルできました。
解決
BinX に、バイナリXML記述言語に加え、対応するライブラリ、フィット感に思えますあなたの目的ます。
また、関心の第24章実践的であるかもしれない:バイナリファイルの解析(バイナリでID3タグを解析するためのライブラリを作成する方法を示してい実践Common Lispのの書籍、のLispのコードのの の150本のラインのの中)MP3ファイル。 *
*この頃、私はおそらくLispのを使用していますが、 Clojureののような、より近代的な関数型言語ではないでしょう。以下のためのClojure の中読書バイナリデータを参照してくださいたとえばます。
P.S。 binary data library
またはbinary data file library
はGoogleにとって良いキーワードです。
他のヒント
"SynalyzeIt" 価値があるかもしれません見て...