Memory
如何在 hexedit 中向下跳轉 X 個字節?
我正在查看記憶體轉儲
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
我如何計算我想要到達的新地址以便我可以輸入它?
好吧,除了使用 eg
bc
或你的 shell(簡單地echo "$((0xB79C6440 + 1234))
)之外,你不能。老實說,這
hexedit
是一個具有悠久傳統的好工具,但如果你真的想移動複雜的文件,它幾乎不是首選的 hexeditor:
- 如果您正在查看可執行程式碼/庫,
radare2
這是一個非常強大的工具,還允許您直接跟隨跳轉,可以分析二進製文件以提取函式,分析文件區域中的熵以查找特定內容等- 如果您要分析數據儲存文件格式,Ange Albertini 的sbud可能更適合您。關於這個問題有一個簡潔的介紹。
- 如果你習慣使用emacs,無論如何,猜猜存在什麼主要模式
- vim 有一個非常流行的十六進制編輯器模式:事實上,最常用的工具之一就是將文件內容轉儲為十六進制(而不是在其中互動式跳轉),它的名字就是
xxd
. 通過輸入:%xxd
vim 進入十六進制編輯模式。查看您的轉儲,這看起來像是將作為程序映像或直接作為裸機韌體載入的東西:radare2
r2
是真正要使用的工具。