我有一個混淆的aarch64(64位ARM,又名armv8)二進制文件,我試圖理解。該程序解碼/解密來自其數據部分的機器指令,將它們存儲到內存中,然後跳轉到該地址。如何在aarch64彙編列表中輕鬆導航
我能夠使用以下gdb命令檢索機器入口。如上所述,使用objdump無法獲得這些入侵,因爲它們被編碼/加密,並且二進制在運行時對它們進行解密。
set log on
x/2000i 0x******
set log off
這產生gdb.txt
文件中的工作目錄含有aarch64組件lisiting:
[...]
0x400ee4: svC#0x0
0x400ee8: orr x3, x0, x0
0x400eec: mov w2, w3
0x400ef0: mov w1, #0x1 // #1
0x400ef4: orr x0, x20, x20
0x400ef8: bl 0x402660 // Jump instr
0x400efc: mov w1, #0x3 // #3
0x400f00: orr x0, x20, x20
[...]
我想能夠:使用快捷
- 跳轉到一個地址:例如,我希望能夠在指令
bl 0x402660
中點擊0x402660
,然後按F3跳轉到st由0x402660
創作。我還希望能夠回到我正在使用另一個快捷方式的地方。 - 生成控制流/圖
當然,你可以建議工具/腳本的任意組合,將工作(即,如果你認爲這樣做將是進口上市的最佳途徑Excel和寫入VB宏,這很好)。不過,請記住我有一個aarch64二進制文件(許多工具與此體系結構不兼容),並且我的二進制文件在運行時解碼其機器碼。
你在使用ARM Foundation模型還是Qemu?我正在嘗試使用gdb來調試在Foundation模型上運行的二進制文件,但到目前爲止,我無法像使用Qemu一樣將它附加到它上面。 – Vinz