cmd.exe
加载到与WinDbg调试器结合设置的IDA Pro中。 .exe甚至都不依赖于User32.dll
(OpenClipboard的来源):所以我可以正确阅读吗? PS。我正在Windows 10上执行此操作。
编辑:您知道,除了延迟加载以外,还有其他事情。我让
cmd.exe
初始化并开始运行,然后挂起它。加载的模块列表仍然没有user32.dll
:并且我的延迟断点也没有在剪贴板操作时触发:
是否还有其他方法可以完成所有“命令行”逻辑?
编辑2:刚刚尝试附加到正在运行的
conhost.exe
: /> ,而IDA Pro以管理员身份运行时出现此错误:
编辑3:只是尝试通过只是WinDbg本身,并收到此错误。我不确定
conhost.exe
在这里如何应用:#1 楼
好吧,如果您无法使用windbg附加,则还有其他问题uac / clamped down / policy / whatever //
conhost.exe是可附加的(检查是否附加到正确的conhost.exe上,可能是
system user
产生了一些问题截图显示了windbg被附加到conhost并在Hwnd(consoleWindowClass的HANDLE)上在OpenClipBoard上损坏了
粘贴操作上
0:001> kb2
# ChildEBP RetAddr Args to Child
00 020afc28 00adf554 020afd34 00000111 00000000 conhost!DoPaste+0x3d
01 020afcb8 773ec4e7 00080260 00000111 0000fff1 conhost!ConsoleWindowProc+0x847
0:001> ub eip l1
conhost!DoPaste+0x37:
00ae2d05 ff155411ad00 call dword ptr [conhost!_imp__GetClipboardData (00ad1154)]
0:001> ? @$retreg
Evaluate expression: 10616892 = 00a2003c
0:001> du poi(@$retreg)
00172fa0 "2580 windbg.exe Pid 3424 "
00172fe0 "- WinDbg:10.0.10586.567 X86"
0:001> g
要评论是,也许我不知道
对Google的粗略浏览说,conhost现在是Windows 10中cmd的子类。
有关ms的conhost增强技术预览文章开发人员没有提及主机托管问题,而且我没有方便使用win10的功能,因此,只有在我在winX下充实之前,我才能回答您的评论,直到快乐狩猎为止。也在winX中附加
(winx在vmware player中运行(测试模式))
评论
谢谢。是的,那是正确的过程。我检查了。它是在启动cmd.exe时产生的。我用在WinDbg中收到的错误消息更新了原始帖子。顺便说一句。我在Win10上做。您正在使用Win7。可能会有所不同吗?
–c00000fd
16年7月1日在6:09
除了一些新的dll /函数之外,没有看到vii和x之间的逻辑差异//控制从控制台到核心APIS的流程
– blabb
16年7月1日在10:33
好。我解决了...有点。我使用的是IDA Pro,然后开始WinDbg。事实证明,IDA Pro无法附加到64位进程,因此它暗中使用了32位版本的WinDbg。因此,我遇到了一个奇怪的错误。我还发现我正在使用旧版本的WinDbg。最后,即使我最初启动的是32位版本的cmd.exe,它也隐式连接到64位版本的conhost.exe。因此,最终我不得不放弃IDA并使用裸装的WinDbg,这有点难以使用...但是它确实完成了工作。所以谢谢!
–c00000fd
16年7月4日在4:57
#2 楼
实际的控制台窗口是由conhost.exe而不是cmd.exe绘制和管理的。评论
抱歉,我对此有些陌生。您能否提供有关如何设置该断点的更多详细信息?
–c00000fd
16年6月29日在15:29
附加到conhost.exe,暂停,切换到asm(Alt-8),在地址字段中输入user32.dll!OpenClipboard,从asm列表添加断点。但是当您没有源时,VS并不是很好的调试器,我建议您使用Windbg或IDA。
–伊戈尔·斯科钦斯基♦
16年6月29日在19:01
谢谢。试图附加到conhost.exe并获得拒绝访问错误。我用详细信息更新了我的问题。知道为什么我会收到该错误吗?
–c00000fd
16年7月1日在5:06
评论
在syswow64中的cmd.exe上使用depends.exe会将user32.dll显示为延迟加载的模块。我假设您的屏幕截图仅显示当前加载的模块,因此存在差异。@LievenKeersmaekers:抱歉延迟。我用其他信息更新了原始问题。延迟加载似乎不是这种情况。
看起来您正在使用x86 windbg附加到x64进程:)这将无法工作。