2016-10-31 35 views
-1

我使用臭名昭着的Blackbone库将另一个模块映射/注入不同的进程并执行其代码。使用Visual Studio在内存组件中调试

通常要调试注入的模块,我必须将windbg的调试器附加到被劫持的进程中,相应地使用.imgscan命令和加载符号扫描加载的模块。

我想知道这样的事情是否可以使用良好的旧视觉工作室。 在VS中有一个选项,符号选项卡,用于加载所有已加载模块的所有符号,但这不会达到与.imgscan/l确实相同的效果。 所以我最终只有一个未解决的调用堆栈(只有内存地址)和反汇编。

+0

@HansPassant:不与注入模块...请参阅https://social.msdn.microsoft.com/Forums/vstudio/en-US/7ea7dd27-fe9e-4118- 988d-567f1dd452ba /如何调试注入远程线程与符号不是一个dll只是一个线程forum = windbg等 – conio

+2

但该DLL不在模块窗口列表中,所以它是有点难以右键点击它。 – conio

回答

1

自从你问Setting up visual studio c++ debugger to support symbols for modules loaded from memory以来,我怀疑有什么变化。答案仍然是:

WinDbg是一个低级别的调试器,可以让您这么做。 Visual Studio调试器是一个不太低级别的调试器,不能这样做。

Blackbone故意及恶意移走从PEB加载的模块列表的模块(参见BBUnlinkFromLoader),如果它甚至困扰加载它们在更多或更少的合理的方式。你想从模块列表中隐藏一个模块? VS说:“很好。”

如果它对你很重要,你可以尝试从Visual Studio GUI使用WinDbg调试器,但它仍然是WinDbg的所有优点和缺点。 (需要安装WDK,我想。)