在Win9x下,没有CreateRemoteThread和VirtualAllocEx函数,但如何用CreateKernelThread和Alloc函数代替 在Win9x下,没有CreateRemoteThread和VirtualAllocEx函数,但可以用CreateKernelThread和Alloc函数代替请大家指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去我主页找。http://nowcan.yeah.net 大哥,试了你的Win98下实现远线程出现一个大大的问题,就是死机在这里:......//写入函数自身 pRun=pfAlloc(cbTest);.............pRun总是为0x00000000于是执行下一步就死跷跷能解析一下吗 下面的程序段远程线程插入win9x的代码,插入成功却无实现(加载DLL)hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,processid); if(!hRemoteProcess) { ::MessageBox(NULL,"OpenProcess Error!","Error",MB_OK|MB_ICONERROR); CDialog::OnCancel(); return FALSE; } hDll=LoadLibrary("COMCTL32.DLL"); if(!hDll) { ::MessageBox(NULL,"Load COMCTL32.DLL Error!","Error",MB_OK|MB_ICONERROR); CDialog::OnCancel(); return 0; } pfAlloc=(PAlloc) GetProcAddress(hDll, MAKEINTRESOURCE(71)); if(!pfAlloc) { ::MessageBox(NULL,"GetProcAddress 71# Error!","Error",MB_OK|MB_ICONERROR); CDialog::OnCancel(); FreeLibrary(hDll); return 0; } cb = (1 + lstrlen(pszLibFileName)) * sizeof(char); pszLibFileRemote=pfAlloc(cb); hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,processid); iReturnCode = WriteProcessMemory(hRemoteProcess,pszLibFileRemote, (PVOID) pszLibFileName, cb, NULL); CloseHandle(hRemoteThread); if(!iReturnCode) { ::MessageBox(NULL,"WriteProcessMemory Error!","Error",MB_OK|MB_ICONERROR); CDialog::OnCancel(); return 0; } hKernel32=LoadLibrary("KERNEL32.DLL"); fCreateKernelThread=(PCreateKernelThread) GetProcAddress(hKernel32, "CreateKernelThread"); ::MessageBox(NULL,"线程插入成功,请关闭窗口","yes",MB_OK|MB_ICONERROR); 我的DLL.DLL只是实现一个弹出对话框的功能BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: ::MessageBox(NULL,"TEST","TEST",MB_OK); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE;} 求助各位,网络编程文件传输功能怎么实现? vc6轮询mysql,检查信息过期,使用系统线程池,可慢,求高人指点 想知道 对话框中始终加不了状态栏,怎么回事! 我每次HTTP POST的数据不同的。为什么得到结果都是相同? socket问题 想做一个类似微软拼音中的软键盘,请大家给点建议好吗? wglUseFontOutlines函数应该怎么用? 读取硬盘的扇区内容 Winsock2 SPI截获不到IE的http VC中是否提供EDIT类的控件,直接处理IP地址格式的输入输出? 急购
http://nowcan.yeah.net
在这里:
......
//写入函数自身
pRun=pfAlloc(cbTest);
.............pRun总是为0x00000000
于是执行下一步就死跷跷
能解析一下吗
{
::MessageBox(NULL,"OpenProcess Error!","Error",MB_OK|MB_ICONERROR);
CDialog::OnCancel();
return FALSE;
} hDll=LoadLibrary("COMCTL32.DLL");
if(!hDll)
{
::MessageBox(NULL,"Load COMCTL32.DLL Error!","Error",MB_OK|MB_ICONERROR);
CDialog::OnCancel();
return 0;
} pfAlloc=(PAlloc) GetProcAddress(hDll, MAKEINTRESOURCE(71));
if(!pfAlloc)
{
::MessageBox(NULL,"GetProcAddress 71# Error!","Error",MB_OK|MB_ICONERROR);
CDialog::OnCancel();
FreeLibrary(hDll);
return 0;
}
cb = (1 + lstrlen(pszLibFileName)) * sizeof(char);
pszLibFileRemote=pfAlloc(cb); hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,processid); iReturnCode = WriteProcessMemory(hRemoteProcess,pszLibFileRemote, (PVOID) pszLibFileName, cb, NULL); CloseHandle(hRemoteThread); if(!iReturnCode)
{
::MessageBox(NULL,"WriteProcessMemory Error!","Error",MB_OK|MB_ICONERROR);
CDialog::OnCancel();
return 0;
} hKernel32=LoadLibrary("KERNEL32.DLL");
fCreateKernelThread=(PCreateKernelThread) GetProcAddress(hKernel32, "CreateKernelThread"); ::MessageBox(NULL,"线程插入成功,请关闭窗口","yes",MB_OK|MB_ICONERROR);
BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{ switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH: ::MessageBox(NULL,"TEST","TEST",MB_OK);
break; case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}