Re: 为什么在dbgeng.dll里面会有shellexecuteexw

C/C++本地代码调试

为什么在dbgeng.dll里面会有shellexecuteexw


Thomson 2009-09-28, 13:54 下午
如下,
0:000> x dbgeng!ShellExecuteExW
00000000`02340360 dbgeng!ShellExecuteExW

可以看到这个其实只是一个stub,并没有实际的实现, dbgeng.dll里面为什么会实现这些函数呢?

Re: 为什么在dbgeng.dll里面会有shellexecuteexw


格蠹老雷 2009-09-29, 07:38 上午
WinDBG有个.shell命令,可以在WinDBG中执行操作系统的一些命令。
0:000> .shell
Microsoft Windows [Version 6.1.7100]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

F:\WinDDK\7100.0.0\Debuggers>
dir
dir
dir
Volume in drive F is DataVol
Volume Serial Number is A41E-3D71

Directory of F:\WinDDK\7100.0.0\Debuggers

09/29/2009 07:17 AM .
09/29/2009 07:17 AM ..
05/24/2009 01:17 PM 1394
......

应该是供这个命令用的,去调用这个API...

Re: 为什么在dbgeng.dll里面会有shellexecuteexw


Thomson 2009-09-29, 15:18 下午
谢谢张老师. 不过,这个symbol所指的只是一个stub,并没有真正的实现(只是return 0), 如果真要使用这个api的话,可以去load shell32.dll, 所以不明白为什么放一个stub在这里.

如果用ln dbgeng!ShellExecuteExW的话,可以找到这个地址对对应很多的symbol,那就是,很多stub都是指向这里的.

Powered by Community Server Powered by CnForums.Net