首页
社区
课程
招聘
[旧帖] [求助]远程线程注入后,对话框搞出来以后不能用... 0.00雪花
发表于: 2013-1-21 00:19 1303

[旧帖] [求助]远程线程注入后,对话框搞出来以后不能用... 0.00雪花

2013-1-21 00:19
1303
dllmain里我是这样创建线程的:
BOOL APIENTRY  DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
        char szProcessId[64];
        switch (fdwReason)
        {
        case DLL_PROCESS_ATTACH:
                MessageBox(NULL,TEXT("DLL进程注入成功!"),TEXT("提示"),MB_OK);
                HANDLE m_hThread;
                m_hThread=CreateThread(NULL,0,startMainDlg,0,0,NULL);
                break;
        case DLL_THREAD_ATTACH:
                break;
        case DLL_THREAD_DETACH:
                break;
        case DLL_PROCESS_DETACH:
                break;
        }
        return TRUE;
}
下面是创建窗口的函数:
DWORD __stdcall startMainDlg(LPVOID lpParameter)
{
        hwndDLG = CreateDialog(hinst,MAKEINTRESOURCE(IDD_DLG_MAIN), NULL,(DLGPROC)DlgProc);
        ShowWindow(hwndDLG, SW_SHOW);
        return 0;
}
按我上面这样写,对话框一闪而过。我从网上搜了搜资料说是因为需要加上消息循环,
如果我加上消息循环,改成这样:
DWORD __stdcall startMainDlg(LPVOID lpParameter)
{
        hwndDLG = CreateDialog(hinst,MAKEINTRESOURCE(IDD_DLG_MAIN), NULL,(DLGPROC)DlgProc);
        ShowWindow(hwndDLG, SW_SHOW);
        bool flag = true;
        MSG msg;
        while(GetMessage(&msg,hwndDLG,0,0))   
        {   
                TranslateMessage(&msg);   
                DispatchMessage(&msg);   
        }   
        return 0;
}

对话框倒是出来了,结果上面的按钮什么的都没法用了,这是为啥?搜资料没找到原因,求大神帮忙看看

[课程]Android-CTF解题方法汇总!

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