-
-
[求助]使用CreateProcess带lpApplicationName和lpCommandLine参数创建的进程如何调试?
-
发表于:
2013-8-20 12:00
12047
-
[求助]使用CreateProcess带lpApplicationName和lpCommandLine参数创建的进程如何调试?
请问各大虾有木有遇到过一下问题:
父进程通过CreateProcess函数创建子进程,有lpApplicationName和lpCommandLine参数的情况下,ollydbg提示无法定位文件,有办法吗?
先在注册表设置自动启动调试器
在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution options建debugger=C:\soft\OllyICE_1.10\OllyICE.exe
详细操作,参考http://msdn.microsoft.com/zh-cn/library/vstudio/a329t4ed.aspx 设置的
父进程代码如下:
#include<windows.h>
#include<stdio.h>
main()
{
PROCESS_INFORMATION x;
STARTUPINFO startup_info;
memset((char *)&startup_info, 0, sizeof(STARTUPINFO));
startup_info.cb = sizeof(STARTUPINFO);
startup_info.dwFlags = STARTF_USESTDHANDLES;
startup_info.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
int a= CreateProcess("showcmd.exe","abc",0,0,0,0,0,0,&startup_info,&x);//没有abc参数的时候可以调试showcmd.exe进程,有的时候要怎样调试呢?
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
printf("%s",lpMsgBuf);
}
运行父进程后,ollydbg是启动了,但是有一下提示问题,怎么解决呢?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!