我正在通过将它们的偏移量传递给DisassembleWide()函数来分解指令,同时为Windbg编写一个扩展。但是,在解压缩指令中,它为该指令添加指令+十六进制操作码的地址。
我能够通过在DEBUG_ASMOPT_NO_CODE_BYTES中指定SetAssemblyOptions()标志来删除操作码。然而,我似乎无法摆脱指令偏移量。DEBUG_ASMOPT_DEFAULT | DEBUG_ASMOPT_NO_CODE_BYTES和(DEBUG_ASMOPT_DEFAULT | DEBUG_ASMOPT_NO_CODE_BYTES) & ~DEBUG_ASMOPT_VERBOSE似乎都不起作用。
我是不是遗漏了什么?是否有一种方法,我可以干净地从指令中删除偏移量,还是我必须用手动的方式完成它?
发布于 2014-12-19 20:32:14
没有地址将永远打印,你必须自己解析出来,如果你是在一个风车会话,你可以用.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 exitedhttps://stackoverflow.com/questions/27544322
复制相似问题