Вирусы в UNIX, или Гибель Титаника II


         

В некоторых случаях стартовые функции


text:080480B8 start  proc near

text:080480B8

text:080480B8        push   ebp

text:080480B9        mov    ebp, esp

text:080480BB        sub    esp, 0Ch



text:0804813B        ret

text:0804813B start  endp

Листинг 15 пример нормальной стартовой функции с классическим прологом и эпилогом

В некоторых случаях стартовые функции передают бразды правления libc_start_main и заканчиваются по hlt без ret. Это вполне нормальное явление. "Вполне" потому что очень многие вирусы, написанные на ассемблере, получают в "подарок" от линкера такой же стартовый код. Поэтому присутствие стартового кода в исследуемом файле, не дает нам никаких оснований считать его здоровым.

.text:08048330       public start

.text:08048330       start  proc near

.text:08048330             xor    ebp, ebp

.text:08048332             pop    esi

.text:08048333             mov    ecx, esp

.text:08048335             and    esp, 0FFFFFFF8h

.text:08048338             push   eax

.text:08048339             push   esp

.text:0804833A             push   edx

.text:0804833B             push   offset sub_804859C

.text:08048340             push   offset sub_80482BC

.text:08048345             push   ecx

.text:08048346             push   esi

.text:08048347             push   offset loc_8048430

.text:0804834C             call   ___libc_start_main

.text:08048351             hlt

.text:08048352             nop

.text:08048353             nop

.text:08048353       start  endp

Листинг 16 альтернативный пример нормальной стартовой функции

Большинство зараженных файлов выглядит иначе. В частности, стартовый код вируса PolyEngine.Linux.LIME.poly выглядит так:

.data:080499C1 LIME_END:                        ; Alternative name is 'main'

.data:080499C1             mov    eax, 4

.data:080499C6             mov    ebx, 1

.data:080499CB             mov    ecx, offset gen_msg  ; "Generates 50 [LiME] encrypted…"

.data:080499D0             mov    edx, 2Dh

.data:080499D5             int    80h                  ; LINUX - sys_write

.data:080499D7             mov    ecx, 32h

Листинг 17 стартовый код вируса PolyEngine.Linux.LIME.poly


Содержание  Назад  Вперед