かなりランダムなバイナリデータがあります。私は、そのチャンクがファイル内のどこに存在するか、何回発生するか、どのバイト(またはセクタ)オフセットであるかを知りたい。どのようにそれを行う上の任意のアイデアですか?ファイル内のバイナリチャンクを見つける
おかげで、 ジャスティン
かなりランダムなバイナリデータがあります。私は、そのチャンクがファイル内のどこに存在するか、何回発生するか、どのバイト(またはセクタ)オフセットであるかを知りたい。どのようにそれを行う上の任意のアイデアですか?ファイル内のバイナリチャンクを見つける
おかげで、 ジャスティン
私はそのためのX-Ways WinHexをお勧めします。私は自分自身がハードディスクドライブや大きなディスクイメージファイルの任意のデータを検索するのに非常に頻繁に使用していることを知っています。
+1、素晴らしいツールであっても勝利中心です;-) – DCookie
私は、既存のコマンドがあなたが望むものをまったく実行しないと信じています。あなたのチャンクが小さく、あなたのファイルがメモリに収まるならば、あなたのチャンクを書くのは簡単です。ファイルの内容をスキャンし、各位置でstrncmpを適用します。
ファイルが非常に大きいのにアドレス空間に収まる場合は、mmapでも同じことができます。
チャンクが小さくない場合は、strncmpの代わりにBoyer-Moore algorithmを使用する方がよいでしょう。すでに実装されているため、これほど多くの作業はまだありません。
あなたはgrepの
でこれの一部を行うことができますこれは、バイトと行が一致の合計数を取得するには--count
パラメータを追加し
grep --text --byte-offset 'ls' /bin/ls
をオフセット出力します。
私もこれをやったが、問題はチャンクを含むファイルがあることです。あるファイルの内容を別のファイルにgrep検索する方法が見つかりません。 – Justin
申し訳ありませんが、今までlinuxタグに気づいていませんでした。 –