试图在Dll main中创建线程

时间:2017-04-29 19:22:28

标签: c++ multithreading

我目前正在为游戏写作弊。我将一个Dll注入到firefox(或其他)中,然后创建2个线程以使作弊功能起作用。我在没有任何特殊参数和WaitForMultipleObjects的情况下调用createThread()。线程正在创建但它不起作用。我在控制台应用程序中测试了我的代码,一切正常。我想这与WaitForMultipleObjects函数有关,但我不能放弃。

    HANDLE threads[2];

    threads[0] = CreateThread(NULL, 0, thread1, 0, 0, NULL);
    threads[1] = CreateThread(NULL, 0, thread2, 0, 0, NULL);
    WaitForMultipleObjects(2, threads, true, INFINITE);
    CloseHandle(threads[0]);
    CloseHandle(threads[1]);

1 个答案:

答案 0 :(得分:2)

问题是系统在保持加载程序锁定的同时执行DllMain。线程执行时,它们会尝试调用DllMain以发送线程附加通知。这需要他们等待加载器锁定,因为你的第一个调用正在等待线程,所以它永远不会被释放。