【发布时间】:2016-08-02 04:23:04
【问题描述】:
我目前正在尝试将 DLL 注入到项目中,但每次我使用 while 循环时,进程都会崩溃。 这是代码:
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call,LPVOID lpReserved ){
switch(ul_reason_for_call){
case DLL_PROCESS_ATTACH:
while(char c = getch()){
if(c == 'p'){
MessageBox(0,L"CAPT",L"CAPT",MB_OK);
}
}
break;
}
return TRUE;
}
【问题讨论】:
-
您是否尝试执行 DLL 注入?
-
"我目前正在尝试将 DLL 注入到项目中" 我成功地将 dll 注入进程,我尝试使用 dllmain 上的消息框进行测试,它出现了,但每次我尝试使用 while 循环它崩溃。
-
您是使用Detours 还是手动分配和注入进程空间?您是否确保您的页面是可执行的?
-
我是手动完成的,但我真的不明白为什么循环会导致进程崩溃,它几乎可以与其他所有内容一起使用
-
您之前说过“进程崩溃”。现在你已经说过它“只是卡住了,没有响应”。这些不是一回事。当某些东西崩溃时,这意味着它遇到错误并终止。它有时会在终止之前显示错误消息。当程序停止响应时,这称为hanging。那么,它是什么:你的程序是崩溃还是挂起?