メモリダンプを見ています。
B79C6440 64 6F 6E 65 00 00 6C 5F 75 62 6C 65 20 73 68 6F done..l_uble sho
B79C6450 77 5F 00 00 5F 6F 6E 5F 72 75 70 00 00 61 63 6B w_.._on_rup..ack
B79C6460 69 72 71 5F 76 65 63 74 6F 72 73 10 10 05 30 10 irq_vectors...0.
B79C6470 06 50 10 07 70 10 08 90 10 09 B0 10 0A 98 1B FC .P..p...........
B79C6480 16 9C 1B A0 A4 A8 18 6E 6D 69 5F 63 68 65 63 6B .......nmi_check
Hexeditを使用すると、Enterキーを押してアドレスを入力して新しいアドレスに移動できます。
Xバイトのオフセットを追加してアドレスから移動したいと仮定するとB79C6440
、入力できるように行きたい新しいアドレスをどのように計算しますか?
答え1
bc
まあ、例えば、またはシェル(簡単に)を使用する以外はできませんecho "$((0xB79C6440 + 1234))
。
正直言って、hexedit
長い伝統を持つ素晴らしいツールですが、本当に複雑なファイルを移動したい場合は、16進エディタを選択するのは難しいです。
- 実行可能なプログラムコード/ライブラリを表示するのは
radare2
非常に強力なツールで、ジャンプを直接追跡したり、バイナリファイルを分析して関数を抽出したり、ファイル領域のエントロピーを分析して特定のコンテンツを見つけるなどの作業を実行できます。 - データ保存ファイル形式を分析したい場合は、Ange Albertiniジャガイモあなたのニーズにもっと合うことができます。きれいなデモがありますこの問題について。
- とにかくemacsの使い方に慣れている場合は、どのような主なモードがあるかを推測してください。
- vimには非常に人気のある16進エディタモードがあります。実際には、ファイルの内容を16進数にダンプする(対話式にジャンプするのではなく)、最も一般的に使用されるツールの1つはvimから呼び出されます
xxd
。 vimと入力すると、16進編集モードに入ります:%xxd
。
ダンプを見ると、これはプロセスイメージとしてロードされるか、ベアメタルファームウェアに直接ロードされるように見えます。 Radare2がr2
実際に使用するツールです。