繁体   English   中英

如何在 aarch64 程序集列表中轻松导航

[英]How to navigate easily in aarch64 assembly listing

我有一个我试图理解的混淆aarch64 (64 位 ARM,又名 armv8)二进制文件。 该程序从其 .data 部分解码/解密机器指令,将它们存储到内存中,然后跳转到该地址。

我可以使用以下 gdb 命令检索机器指令。 如上所述,使用 objdump 无法获得这些指令,因为它们是经过编码/加密的,并且二进制文件会在运行时对它们进行解密。

set log on
x/2000i 0x****** 
set log off

这会在工作目录中生成一个gdb.txt文件,其中包含一个 aarch64 程序集列表:

[...]
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
[...]

我希望能够:

  1. 跳转到使用快捷方式地址:例如,我想可以点击0x402660的指令bl 0x402660 ,然后按F3跳到通过启动线0x402660 我还希望能够回到我使用另一个快捷方式的地方。
  2. 生成控制流/图

当然,您可以建议任何可行的工具/脚本组合(即,如果您认为最好的方法是在 Excel 中导入列表并编写 VB 宏,那很好)。 但是,请记住,我有一个 aarch64 二进制文件(很多工具与此架构不兼容),并且我的二进制文件在运行时对其机器代码进行解码。

最好的工具是 IDA Pro Advanced。

对于此类问题,有一个特定的堆栈交换站点: https : //reverseengineering.stackexchange.com/

对于您的特定二进制文件,它不是一个普通的二进制文件,混淆是为了使挑战更有趣:)(对于那些想知道这是关于什么的人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM