【问题标题】:Radare2 "pd" vs "pda"雷达2“pd”与“pda”
【发布时间】:2020-10-03 01:41:55
【问题描述】:

我目前正在尝试从 PE 文件中提取所有操作码。我想知道 Radare2 的“反汇编 N 个字节”的“pd”命令和“反汇编所有可能的操作码(每个字节的字节)”的“pda”命令有什么区别。我应该使用哪个命令从 PE 文件中查找所有操作码?

【问题讨论】:

  • 您是要提取程序集xor eax, eax、字节31 c0、操作码31,还是只提取指令xor

标签: python malware opcode radare2


【解决方案1】:

这取决于你所说的 all 操作码是什么意思。 x861 是一种 CISC 架构。并非所有指令的大小都相同。

考虑以下字节序列:

55 48 89 e5

对应

    55  push rbp
4889e5  mov rbp, rsp

在 x86 64 位中。这就是您使用pd 得到的(如果您从头开始)。然而,在这个字节序列中还隐藏着另一个操作码,即89 e5,即mov ebp, esppdA 也会透露这一点。

0     55  push rbp
1 4889e5  mov rbp, rsp
2   89e5  mov ebp, esp
3     e5  <invalid>

pdA r2 总是增加一个字节并尝试反汇编操作码。


1 由于您想分析 PE,我假设您使用 x86_64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 2015-01-01
    • 2021-07-15
    • 2020-07-21
    相关资源
    最近更新 更多