首页
社区
课程
招聘
[旧帖] [求助]使用CreateProcess带lpApplicationName和lpCommandLine参数创建的进程如何调试? 0.00雪花
发表于: 2013-8-20 11:01 1224

[旧帖] [求助]使用CreateProcess带lpApplicationName和lpCommandLine参数创建的进程如何调试? 0.00雪花

2013-8-20 11:01
1224
请问各大虾有木有遇到过一下问题:
父进程通过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是启动了,但是有一下提示问题,怎么解决呢?


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//