远程线程注入是一种把代码注入到其他进程执行的行为,木马通常利用此技术隐藏自己

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了远程线程注入是一种把代码注入到其他进程执行的行为,木马通常利用此技术隐藏自己相关的知识,希望对你有一定的参考价值。

进程:C:\Windows\System32\wbem\WmiPrvSE.exe
动作:远程线程注入
,我都300多次了
很多用360的人都这样,有个人的截图达到了千次
我查了一下1月15日就有人这样说
我用360+金山+windows清理助手都没问题,全面诊断也没问题
估计没事,这莫多人这样呢,怕什么.
其他的远程可能是你下载的一些软件,如果这些软件都安全,就不要管它了
建议用windows清理助手杀木马比360强多了

360工作人员的回答程序是安全的 就会自动允许。对于安全的程序不拦截 自动放行。如果您要问那为什么还保留记录,是因为我们的确记录到您某个正常的程序进行了这个操作

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
Vae团队招人!!!欢迎各位加入!!!走过路过不要错过!!!迅猛发展中!!!
参考技术A 对的。

OpenProcess
WriteProcessMemory
CreateRemoteThread

有何问题?

远程线程注入代码

                                                              远程线程注入代码 

       远程线程注入可以实现向一个正在运行的进程注入特定的代码。每个进程都有自己的私有空间。远程线程注入可以实现向一个正在运行的进程注入代码。通过进程名找到进程ID,在远程进程开辟空间,启动一个线程,执行一个DLL中的函数,通过得到kernel32中LoadLibrary函数地址,通过执行LoadLibrary载入DLL中的导出函数,执行我们自己定一的代码。实现如下:

//通过进程名得到进程ID

DWORD GetProcessIdFromName(LPCTSTR name)
{
 PROCESSENTRY32 pe;
 DWORD id = 0;
 
 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 pe.dwSize = sizeof(PROCESSENTRY32);
 if( !Process32First(hSnapshot,&pe) )
  return 0;
 
 do
 {
  pe.dwSize = sizeof(PROCESSENTRY32);
  if( Process32Next(hSnapshot,&pe)==FALSE )
   break;
  if(strcmp(pe.szExeFile,name) == 0)
  {
   id = pe.th32ProcessID;
   break;
  }
  
 } while(1);
 
 CloseHandle(hSnapshot);
 
 return id;
}

//注入代码

void CMTestDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
 DWORD dwRemoteProcessId=GetProcessIdFromName("notepad.exe");
 CString str;
 str.Format("%u",dwRemoteProcessId);
 AfxMessageBox(str,MB_OK);
 HANDLE hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,dwRemoteProcessId);
 WCHAR* pszLibFileName=L"MDll.dll";
 int cb=(1+lstrlenW(pszLibFileName))*sizeof(WCHAR);
 LPVOID pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,MEM_COMMIT,PAGE_READWRITE);
 BOOL iReturnCode=WriteProcessMemory(hRemoteProcess,pszLibFileRemote,(PVOID)pszLibFileName,cb,NULL);
 //HMODULE hModule=GetModuleHandle(TEXT("kernel32"));
 HMODULE hModule=LoadLibrary("C:/WINDOWS/system32/kernel32");
 //typedef HModule (* pfunc)(LPCSTR filename);
 PTHREAD_START_ROUTINE pfnStartAddr=(PTHREAD_START_ROUTINE)GetProcAddress(hModule,"LoadLibraryA");

 //格式化出错信息
 TCHAR szBuf[80];
    LPVOID lpMsgBuf;
    DWORD dw = GetLastError();

    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER |
        FORMAT_MESSAGE_FROM_SYSTEM,
        NULL,
        dw,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR) &lpMsgBuf,
        0, NULL );

    wsprintf(szBuf,
        " failed with error %d: %s",
        dw, lpMsgBuf);
 
    AfxMessageBox(szBuf,MB_OK);

    LocalFree(lpMsgBuf);

 

 HANDLE hRemoteThread=CreateRemoteThread(hRemoteProcess,NULL,0,pfnStartAddr,pszLibFileRemote,0,NULL);

  //等待远程线程退出    
  WaitForSingleObject(hRemoteThread,   INFINITE);    
  //清场处理    
  if   (pszLibFileRemote   !=   NULL)    
  VirtualFreeEx(hRemoteProcess,   pszLibFileRemote,   0,   MEM_RELEASE);    
  if   (hRemoteThread   !=   NULL)   CloseHandle(hRemoteThread   );    
  if   (hRemoteProcess!=   NULL)   CloseHandle(hRemoteProcess);       

}

以上是关于远程线程注入是一种把代码注入到其他进程执行的行为,木马通常利用此技术隐藏自己的主要内容,如果未能解决你的问题,请参考以下文章

远程线程注入

隐蔽的恶意代码启动

远程线程DLL注入, 如何释放DLL和结束DLL的线程

Dll注入:X86/X64 远程线程CreateRemoteThread 注入

远程线程注入怎么解决啊?高手们帮帮忙看看!

星号密码探测工具 - 代码远程线程注入的简单运用