0

我在DisassembleWide()为 Windbg 编写扩展时通过将它们的偏移量传递给函数来反汇编指令。但是,对于反汇编指令,它会添加指令的地址 + 该指令的十六进制操作码。

我可以通过DEBUG_ASMOPT_NO_CODE_BYTESSetAssemblyOptions(). 但是我似乎无法摆脱指令偏移量。既不DEBUG_ASMOPT_DEFAULT | DEBUG_ASMOPT_NO_CODE_BYTES,也不(DEBUG_ASMOPT_DEFAULT | DEBUG_ASMOPT_NO_CODE_BYTES) & ~DEBUG_ASMOPT_VERBOSE似乎工作。

我错过了什么吗?有没有办法可以干净地从指令中删除偏移量,还是必须手动执行?

4

1 回答 1

1

将始终不打印地址,如果您在 windbg 会话中,您必须自己解析它,您可以使用 .shell 和 awk 来实现

0:000> .asm no_code_bytes
Assembly options: no_code_bytes
0:000> .shell -ci "u @eip l4" awk "{$1=\"\";print $0}"

 int 3
 ret
 mov edi,edi

 int 3
.shell: Process exited
于 2014-12-19T20:32:14.193 回答