問題タブ [xxd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
376 参照

c++ - これらの自動生成されたオブジェクトに `__attribute__ ((unused))` をプログラムで適用するにはどうすればよいですか?

私には、次のターゲットがあります。これは、を使用してテキスト/HTML リソースを配列makefileに「コンパイル」します。unsigned charxxd -i

結果を匿名の名前空間とヘッダー ガードでラップし、翻訳単位内および翻訳単位間の複数包含の安全性を確保します。

そのようなリソースが 1 つしかない場合、出力は次のようになります(実際のコンテンツは編集されています)

__attribute__ ((unused))これらの文字配列にGCC をプログラムで適用する最良の方法は何でしょうか? 特定の TU で最終的に使用しないリソースに関する GCC の警告は必要ありませんが、「未使用の変数」の警告を完全にオフにしたくありません。

0 投票する
4 に答える
5361 参照

linux - hexdump と xxd は、Red Hat と ubuntu/mint で異なる出力を生成します

まず、私のLinux mint/ubuntuシステムで起こったことについて言及しています...

同じことを red hat で試してみると、奇妙な動作が発生しています。

Red Hat と Linux mint/ubuntu の出力間でこの不一致が発生する理由を見つけることができません。

可能であれば、代わりに同じことを実行する awk/shell を教えてくださいxxd -r -p

助けてください!!

編集:

Linux mint/ubuntu システムで ..

赤い帽子のマシンで..

0 投票する
5 に答える
10691 参照

parsing - UNIX でバイナリ ファイルを作成する

この質問はしばらく前からありましたが、それを機能させることができれば、いくつかのボーナスポイントを提供する必要があると思いました.

私は何をしましたか…</h1>

最近、職場で、バイナリ ファイルを読み取り可能な形式に変換するパーサーを作成しました。バイナリ ファイルは、10101010文字を含む ASCII ファイルではありません。バイナリでエンコードされています。したがってcat、ファイルに対して a を実行すると、次のようになります-

そこでhexdump、ユーティリティを使用してコンテンツに続いてファイルを表示し、ファイルにリダイレクトしました。これで、16 進値を含むテキスト ファイルである出力ファイルができました。

大量のawksedおよびのcut後、スクリプトは 16 進値を読み取り可能なテキストに変換しました。そのために、変換された各パラメータの開始位置と終了位置をマークするオフセット位置を使用しました。すべての変換後の結果ファイルは次のようになります

なぜ私はそれをしたのですか

私はテスト エンジニアであり、バイナリ ファイルを手動で検証することは大きな苦痛でした。手動でオフセットを解析し、電卓を使用してそれらを変換し、Wireshark と GUI に対して検証する必要がありました。

さて質問部分

今までと逆のことをしたい。これが私の計画だった -

  • 読みやすい入力テキスト ファイルを用意しますParameters : Values
  • ユーザーは単純にそれらの横に値を入力できます (たとえば、日付はパラメーターであり、ユーザーはデータ ファイルに含める日付を指定できます)。
  • スクリプトは、入力テキスト ファイルからすべての関連情報 (ユーザーが提供した情報) を切り取り、それらを 16 進数値に変換します。
  • ファイルが 16 進値に変換されたら、それをバイナリにエンコードしたいと思います。

最初の 3 つのステップが完了しました

問題

スクリプトが入力テキスト ファイルを 16 進数値のテキスト ファイルに変換すると、次のようなファイルが得られます (これで実行できることに注意catしてください)。

私の意図は、この変換されたファイルをバイナリにエンコードして、ファイルを処理すると大量のガベージ値が得られるようにすることです。cat

質問はこれです。この形式でエンコードするにはどうすればよいですか?

なぜ私はこれをしたいのですか?

本番環境では、多くの GTP (GPRS Tunneling Protocol) メッセージはありません。これをリバースエンジニアリングすれば、効果的にデータジェネレーターを作成し、独自のデータを作成できると思いました。

まとめて

世の中には洗練されたツールがあるかもしれませんが、私はそれらの学習にあまり時間をかけたくありません。約 2 か月が経ちました。*nix プラットフォームの作業を開始し、 や などのパワー ツールを使い始めましsedawk

私が欲しいのは、これを実現するための助けとガイダンスです。

読んでくれてありがとう!正しい方向に私を導くことができる誰かを 200 ポイントが待っています。:)

サンプルファイル

元のバイナリ ファイルのサンプルを次に示します。

ユーザーが値を入力できる入力テキスト ファイルのサンプルを次に示します。

以下は、入力テキスト ファイルからのすべての変換が完了した後にスクリプトが作成するファイルのサンプルです。

File 3のエンコーディングをに変更するにはどうすればよいFile 1ですか?

0 投票する
3 に答える
3409 参照

vim - xxdで使用する場合はVimがファイルを変更する

ID3タグがどのように機能するかを理解しようとしているので、いくつかのドキュメントを読んだ後、mp3の生データを調べ始めました。Vimは通常私の選択するエディターなので、グーグルした後、xxdを使用して、呼び出すことでファイルの16進表現を表示できることがわかりました。

すべてが正常に機能しましたが、すべてを元に戻すと

やめると、ファイルが変更されていることがわかりました。vlcはそれを再生できなくなり、diffはファイルが異なると教えてくれました。誤って何かを変更したと思ったのですが、さらに実験を重ねたところ、ファイルを開いてxxdを使用してからxxd -rを使用しても、ファイルが何らかの形で変更されることがわかりました。

何故ですか?どうすればそれを防ぐことができますか?私は何か間違ったことをしていますか?

0 投票する
4 に答える
13838 参照

linux - xxdでhexdumpにオフセットを挿入する方法は?

xxdによって生成された16進ダンプにオフセットを追加する簡単な方法はありますか?

すなわちの代わりに

私は得る必要があります

0 投票する
1 に答える
15535 参照

hex - xxdなしのxxd-r

多くのツールが利用できない状態で、CentOS5.5の縮小バージョンで実行しています。xxd、bc、またはhdはありません。残念ながら、追加のユーティリティをインストールすることはできません。私はod、dd、awk、およびbourneシェル(bashではない)を持っています。私がやろうとしていることは、通常の環境では比較的単純です。基本的に、私には100,000などの数値があり、そのバイナリ表現をファイルに保存する必要があります。通常、私は次のようなことをします...

ファイルの16進ダンプを表示すると、186A0として表される番号が正しく表示されます。

私が利用できる限られたツールを使用して一緒に石畳にすることができる同等のものはありますか?私が試したほとんどすべてが、数字のASCII値を格納します。

0 投票する
1 に答える
3540 参照

compiler-construction - qmake:追加のコンパイラ(処理ステップ)?

私の qmake ベースのプロジェクトでは、コンパイルの前にいくつかのファイルで 'xxd' を実行したいと考えています。ドキュメントに従って、私のプロファイルの関連部分は次のようになります。

Qmake は文句を言いませんが、xxd もまったく実行しません。前処理したいファイルごとに特別なターゲットを作成する必要がありますか? (結果の *.xxd ファイルは後でコンパイルされ、他の cpp ファイルにのみ含まれます)

編集: smokrisの助けを借りて、これは私のproファイルの部分をどのように修正したかです:

0 投票する
2 に答える
392 参照

bash - 変数に格納されているフィールドの数を数える

私は基本的なファイルカーバーに取り組んでおり、現在ファイルのバイト位置の計算に固執しています。

次の手順を実行するには、コードが必要であることがわかりました。

  1. 変数で$searchQueryを見つけます
  2. $ searchQueryが見つかったら、残りの文字列を削除します
  3. 変数内に現在存在するフィールドの数を数えます
  4. 16進オフセットと$searchQuery自体を考慮に入れるためのこの変数からのマイナス2
  5. 次に、答えに2を掛けて、正しいバイト数を取得します

この例は次のとおりです。

  1. 「00052a0:b4f1 559c ffd8 ffe0 0010 4a4649460001」内で「ffd8」を見つけます
  2. 変数が「00052a0:b4f1559cffd8」に更新されます
  3. $fieldCountには「4」の値が割り当てられます
  4. $ fieldCount =((fieldCount-2))
  5. $ byteCount =((fieldCount * 2))

私はすべてを行う方法の基本的な考えを持っていますが、変数のフィールドの数を数えます。たとえば、$ searchQueryが見つかるまで、変数に含まれるフィールドの数をどのようにカウントしますか?同様に、文字列の不要な部分を削除した後、フィールドの数をカウントするにはどうすればよいですか?

grepで$searchStringを見つけた後、どのように進めるかわかりません。私の現在のコードは次のようになります。

助けてくれてありがとう!

0 投票する
1 に答える
225 参照

debian - グループ区切り文字をテキストファイルから削除する方法

Windows PCで作成されたテキストファイルがあり、それをDebianマシンで開いています。nanoで開くと、下部に(DOS形式から変換)と表示されます。

ファイルから1行を取得し、次を使用してそのバイナリ表現を確認すると、次のようになります。

これは、2つの00001101文字が行に追加されたことを示しています。私は次のようにtrでそれらを削除しようとしています:

しかし、それは機能していないようです。

この問題をどのように解決できるか考えていますか?作成するには^]Shift+ ^を実行しているので、]グループ区切り文字の制御文字を生成するために何か他のことをする必要がありますか?