通过调用dbghelp.dll的SymGetLineFromAddr64()
,我可以使用dbghelp.dll在给定地址获取行信息。
它只给我该地址的源代码信息(例如行号和文件名)。但是,在WinDBG中,我还可以获得给定地址的汇编代码。我不知道如何使用dbghelp.dll来做到这一点。如果不可能,我可以使用任何其他dll吗?
答案 0 :(得分:1)
我不认为你可以从dbghelp获得反汇编列表。然而,只要在拆解线路时指定了正确的指令起始地址,就可以很容易地将免费OllyDbg Disassembler 2.01引擎集成到您的代码中,尽管工作量超出您的预期。即:你不是从我认为dbghelp负责的中间指令开始的。也就是说,假设你想要反汇编x86代码。
唯一的技巧可能是获取当前行的长度为多少字节,这样你就知道要反汇编多少,如果你想要比当前行开头的64字节硬编码更好。如果您事先通过SymEnumLines()枚举了模块的所有源代码行,那么您可以使用该信息不仅查找当前行,而且还可以查找到下一行之前的字节数。