病毒伪装成explorer.exe进程

---------------------------------------------------------       小路原创           ------------------------------------------------


昨天晚上为了做计算机安全与保密课的实验,我把电脑的杀毒软件都关闭了之后安装运行了几个软件,结果几天早上一开机发现电脑桌面和下面的状态栏都没有了,怎么也显示不出来。幸好可以打开任务管理器,打开任务管理器新建一个任务,然后选择浏览,点击桌面,发现桌面上有原来的图标啊,为什么不显示出来呢。因为电脑上安装了很多常用的软件并且都是花了很多时间配置好了的,如果直接换系统的话会很麻烦。我就在网上查了一下资料,了解到原来是explorer.exe进程在作祟,查看进程原来真的没有一个explorer.exe进程在运行,通过新建任务新建一个explorer.exe之后桌面的图标就显示了出来。之后我用杀毒软件全盘扫描了一下,把全部威胁给处理了,然后把恶意程序损坏的软件进行了重新安装。
下面是悲剧的一刻:
病毒伪装成explorer.exe进程 - 水到绝境是飞瀑 - 谁的青春不迷茫
 
病毒伪装成explorer.exe进程 - 水到绝境是飞瀑 - 谁的青春不迷茫
 
原来一直以为explorer.exe进程是IE浏览器的进程,今天才明白原来它不是IE的进程,IE的进程是iexplorer.exe。
    下面是了解到的explorer.exe进程的知识:
     explorer.exe 进程是微软为其Windows操作系统定义的的系统核心进程,它是较老的Windows 3.x文件管理器的替代品,在后来的系统中微软将其称为“Windows 资源管理器”。在功能上,explorer.exe进程为用户提供了图形用户界面(也成为图形壳),简单的说就是用来显示系统的桌面环境的,包括开始菜单、桌面下方的任务栏、桌面图标和文件管理 当我们打开Windows系统的任务管理器,就会发现有一个explorer.exe进程。并且无论你使用的是微软的哪款系统、在何时打开任务管理器你都会发现这个进程的存在,并且是开机自动运行。 explorer.exe进程代表的Windows系统图形壳程序,作为核心电脑系统的核心进程,正常的情况下它会一直存在。

虽然我将其称为核心进程,但这个和Csrss.exe等核心进程不同的是我们可以在任务管理器中选项“结束进程”来将其终止,终止之后电脑程序依然可以正常的运行,但是你就会发现桌面、任务栏等都不见了(可以通过任务管理器的“文件”→“新建任务”来重启explorer.exe进程)。虽然高手们可以通过命令符来继续操作系统,但对普通用户来说由于没有了图形化的控制界面,对电脑的操作将束手无策。

木马病毒一向偏爱系统的核心进程来做文章,而explorer.exe进程也不例外,因为核心进程通常更能容易让大家松懈对它的警惕性。但是我们还是有办法在不借助杀毒软件的情况下发现、识别出那些伪装或者与explorer.exe进程有关的木马病毒。

作为显示图形界面的explorer.exe进程在系统里面只会存在一个(无论是XP、Vista、Win7还是Win8),而当你在任务管理器里面发现了两个名称一样的explorer.exe进程时,这将是一个非常危险的信号,因为这里面必定有一个是不应该存在的,而这多出来的一个很有可能就是木马病毒程序。这种情况下我们可以结束一个进程来测试到底哪个是真正的explorer.exe进程,如果结束后桌面不显示了,下边的菜单栏也不显示了就说明这个是正的,如果不是则为可以的病毒。应该立即使用病毒软件查杀。  

参考资料:http://mtoou.info/explorer-exe/ 



---------------------------------------------------------       小路原创           ------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码完全远程。 可以在XP WIN7 WIN764 WIN2003 等操作系统上成功实现修改进程路径。 已经封装成类,使用及其方便。 部分代码: 头文件: #ifndef ModifyProcessPath_h__ #define ModifyProcessPath_h__ // 结构定义 typedef struct _PROCESS_BASIC_INFORMATION { DWORD ExitStatus; ULONG PebBaseAddress; ULONG AffinityMask; LONG BasePriority; ULONG UniqueProcessId; ULONG InheritedFromUniqueProcessId; } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; // API声明 typedef LONG (__stdcall *PZWQUERYINFORMATIONPROCESS) ( HANDLE ProcessHandle, ULONG ProcessInformationClass, PVOID ProcessInformation, ULONG ProcessInformationLength, PULONG ReturnLength ); class CModifyProcessPath { public: CModifyProcessPath(); BOOL Create(); BOOL ModifyProcessPath(LPCTSTR szPath); BOOL CamouflageExplorerPath(); }; #endif // ModifyProcessPath_h__ CPP部分代码: #include "StdAfx.h" #include "ModifyProcessPath.h" namespace MODIFY_PROCESS { wchar_t m_szModulePath[MAX_PATH]; DWORD dwGetModuleFileNameWAddress; DWORD dwModuleBaseAddress; //E9 (目标地址-当前地址 - 5) #pragma pack(1) typedef struct _JMPCODE { BYTE bJmp; DWORD dwAddr; }JMPCODE,*LPJMPCODE; #pragma pack() DWORD WINAPI MGetModuleFileNameW(HMODULE hModule,wchar_t * lpFilename,DWORD nSize); }; using namespace MODIFY_PROCESS; // 为了不影响在进程内使用 GetModuleFileNameW ,故hook之,返回正确的路径。 DWORD WINAPI MODIFY_PROCESS::MGetModuleFileNameW(HMODULE hModule,wchar_t * lpFilename,DWORD nSize) { typedef DWORD(WINAPI *MGetModuleFileNameWT)(HMODULE,LPWCH,DWORD); MGetModuleFileNameWT pMGetModuleFileNameW; pMGetModuleFileNameW = (MGetModuleFileNameWT)dwGetModuleFileNameWAddress; if(hModule == NULL || hModule ==(HMODULE)MODIFY_PROCESS::dwModuleBaseAddress) { StringCbCopyW(lpFilename,nSize,m_szModulePath); return wcslen(m_szModulePath); } return pMGetModuleFileNameW(hModule,lpFilename,nSize); } CModifyProcessPath::CModifyProcessPath() { } BOOL CModifyProcessPath::Create() { ZeroMemory(MODIFY_PROCESS::m_szModulePath,sizeof(MODIFY_PROCESS::m_szModulePath)); MODIFY_PROCESS::dwGet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值