Memory

如何在 hexedit 中向下跳轉 X 個字節?

  • May 1, 2021

我正在查看記憶體轉儲

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 我可以通過按輸入鍵並輸入地址來跳轉到新地址。

假設我想通過添加 X 字節的偏移量來從地址移動,B79C6440我如何計算我想要到達的新地址以便我可以輸入它?

好吧,除了使用 egbc或你的 shell(簡單地echo "$((0xB79C6440 + 1234)))之外,你不能。

老實說,這hexedit是一個具有悠久傳統的好工具,但如果你真的想移動複雜的文件,它幾乎不是首選的 hexeditor:

  • 如果您正在查看可執行程式碼/庫,radare2這是一個非常強大的工具,還允許您直接跟隨跳轉,可以分析二進製文件以提取函式,分析文件區域中的熵以查找特定內容等
  • 如果您要分析數據儲存文件格式,Ange Albertini 的sbud可能更適合您。關於這個問題有一個簡潔的介紹。
  • 如果你習慣使用emacs,無論如何,猜猜存在什麼主要模式
  • vim 有一個非常流行的十六進制編輯器模式:事實上,最常用的工具之一就是將文件內容轉儲為十六進制(而不是在其中互動式跳轉),它的名字就是xxd. 通過輸入:%xxdvim 進入十六進制編輯模式。

查看您的轉儲,這看起來像是將作為程序映像或直接作為裸機韌體載入的東西:radare2r2是真正要使用的工具。

引用自:https://unix.stackexchange.com/questions/647596