强制解释 x64dbg 中的代码
逆向工程
x64dbg
2021-06-29 19:09:04
1个回答
您遇到了向后反汇编的问题。当你给 x64dbg 一个反汇编的地址时,它会在这个地址开始解码,转到下一条指令,等等。
例如,如果您有字节:
EB 00 48 83 C4 38 C3
然后你开始反汇编你会看到的第一个字节:
0 | EB 00 | jmp 2
2 | 48 83 C4 38 | add rsp,38
6 | C3 | ret
如果从第二个字节开始反汇编,您将看到:
1 | 00 48 83 | add byte ptr ds:[rax-7D],cl
4 | C4 | ???
5 | 38 C3 | cmp bl,al
您在向上滚动时看到这样的垃圾的原因是 x64dbg 不知道指令开始并尝试基于字节启发式地确定前一条指令是什么。如果这个算法的结果是错误的,x64dbg 将在不正确的位置反汇编,导致看起来很奇怪的指令。您可以在此处找到该算法的实现。它基于 OllyDbg 内部使用的算法。
正如一些用户建议您可以使用分析,但在向后反汇编期间不使用此结果,因为通常一切正常。

