ドキュメント化されていないファイル形式のバイナリ ファイルを解析する必要がある C の小さなプロジェクトに取り組んでいます。私は CI にまったく慣れていないので、経験豊富なプログラマーに 2 つの質問があります。
最初は簡単なようです。バイナリ ファイルからすべての文字列を抽出して配列に入れるにはどうすればよいですか? 基本的に、Cでの文字列プログラムの単純な実装を探しています。
任意のテキスト エディターでバイナリ ファイルを開くと、読み取り可能な文字列が混在する大量のゴミが表示されます。コマンド ラインで文字列を使用して、この文字列を抽出できます。以下の疑似コードのように、Cで同様のことをしたいと思います。
while (!EOF) {
if (string found) {
put it into array[i]
i++
}
return i;
}
2 番目の問題はもう少し複雑ですが、同じことを達成するための適切な方法だと思います。HEX エディターでファイルを見ると、いくつかのパターンに簡単に気付くことができます。たとえば、各文字列の前に値 02 (0x02) のバイトがあり、その後に文字列の長さと文字列自体が続きます。たとえば、02 18 52 4F 4F 54 4B 69 57 69 4B 61 4B 69は、文字列部分が太字の文字列です。
今、作成しようとしている関数は次のように機能します。
while(!EOF) {
for(i=0; i<buffer_size; ++i) {
if(buffer[i] hex value == 02) {
int n = read the next byte;
string = read the next n bytes as char;
put string into array;
}
}
}
ご指摘ありがとうございます。:)