Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Можно ли на ассемблере писать вирусы?

4.4K
28 мая 2004 года
programist121
11 / / 27.05.2004
Можно ли на ассемблере писать вирусы? Если нет тогда на чем можно?
3
28 мая 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by programist121
Можно ли на ассемблере писать вирусы? Если нет тогда на чем можно?



Вирус - это программа, значит его, как и другие программы, можно писать на любом языке программирования.

5.1K
28 мая 2004 года
Kreoton
15 / / 06.03.2004
Цитата:
Originally posted by Green


Вирус - это программа, значит его, как и другие программы, можно писать на любом языке программирования.


Но лучше писать на асме, т.к. он должен иметь мелкий размер и вообще, вири на асме писать нааамнОго проще!

3
28 мая 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Kreoton

Но лучше писать на асме, т.к. он должен иметь мелкий размер и вообще, вири на асме писать нааамнОго проще!



Честно говоря, не вижу прямой связи между размером и использованием ассемблера.

6.0K
28 мая 2004 года
TarasCo
28 / / 10.03.2004
Цитата:
Originally posted by Green

Честно говоря, не вижу прямой связи между размером и использованием ассемблера.



Говорят, что краткость - сестра таланта. Руководствуясь этим, чуть чуть урежем цитату ув. BioUnit а. Теперь она станет более универсальной:

"... не вижу прямой связи между размером и использованием ..."

7.1K
30 мая 2004 года
yGREK
6 / / 28.03.2004
Цитата:
Originally posted by Green


Честно говоря, не вижу прямой связи между размером и использованием ассемблера.



По-моему это очевидно. А цитата про излишнюю самоуверенность ко всем относится.

1.8K
30 мая 2004 года
Exfector
74 / / 12.10.2002
Цитата:
Originally posted by programist121
Можно ли на ассемблере писать вирусы? Если нет тогда на чем можно?



Задали бы мене этот вопрос на рубеже 90х. ROTFL! LMAO! с неделю бы по полу катался 8-]

btw.: если тебе это дествительно интерессно - недавно сного поднялся один ресурс http://vx.netlux.org/ . там много интерессных головоломок.

3
30 мая 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by yGREK


По-моему это очевидно. А цитата про излишнюю самоуверенность ко всем относится.



"В первую очередь следует подвергать сомнению очевидное, аксиомы и константы..."

И, честно говоря, я не вижу очевидности. Это клише, а не очевидность.

7.1K
31 мая 2004 года
yGREK
6 / / 28.03.2004
Цитата:
Originally posted by Green


И, честно говоря, я не вижу очевидности. Это клише, а не очевидность.



Проверено на практике и не только мной. Например вирус в несколько кило на большинстве современных языков написать просто невозможно благодаря всяким startup процедурам. Зайди на viruslist.com и почитай про новые вирусы - большинство написано (вообще кошмар) на MSVC++ и иже с ним. И посмотри на размер. Их там пакуй не пакуй все равно скоро и на дискету влезать не будут.

А для того чтобы написать на АСМе такого размера прогу надо два года мучиться баги искать :~)

3
31 мая 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by yGREK

Например вирус в несколько кило на большинстве современных языков написать просто невозможно благодаря всяким startup процедурам.


Причем тут язык?
Причем startup процедуры?

Цитата:
Originally posted by yGREK

Зайди на viruslist.com и почитай про новые вирусы - большинство написано (вообще кошмар) на MSVC++ и иже с ним. И посмотри на размер. Их там пакуй не пакуй все равно скоро и на дискету влезать не будут.


А чем тебе VC++ не угодил?
Проблема не в языке и компиляторе, а в кривости рук. Если ты печешься о размере программы, то смею заверить, что на VC++, вполне можно писать программы не более 1кб результирующего файла.
Может проблема в том, что "вирусы" сейчас пишут все кому не лень, а реальным программистам это уже не интересно?

Цитата:
Originally posted by yGREK

А для того чтобы написать на АСМе такого размера прогу надо два года мучиться баги искать :~)


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

7.1K
03 июня 2004 года
yGREK
6 / / 28.03.2004
Цитата:
Originally posted by Green

Причем тут язык?
Причем startup процедуры?


Не понял --> мы чем занимаемся сравниваем АСМ с другими на тему размера или ...?

Цитата:
Originally posted by Green

А чем тебе VC++ не угодил?
Проблема не в языке и компиляторе, а в кривости рук. Если ты печешься о размере программы, то смею заверить, что на VC++, вполне можно писать программы не более 1кб результирующего файла.
Может проблема в том, что "вирусы" сейчас пишут все кому не лень, а реальным программистам это уже не интересно?


Я не знаток MSVC++ и не уверен в том что на нём можно написать прогу меньше 1Кб. Был бы очень признателен если бы меня убедили в обратном. Например - exe,cpp,и bat для сборки. main(){printf("Hello world");} вполне достаточно.

Цитата:
Originally posted by Green

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


Вот именно для удобства - а за всё как известно платить надо. Поскольку одно и то же действие на АСМе можно сделать по разному, а на ЯВУ пишешь одну коротенькую строчку для этого действия - компилятору самому приходиться выбирать способ реализации. И вот это узкое место.

3
03 июня 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by yGREK

Не понял --> мы чем занимаемся сравниваем АСМ с другими на тему размера или ...?


Да, но причем startup процедуры?
Хочешь - пользуйся, а хочешь - нет.

Цитата:
Originally posted by yGREK

Я не знаток MSVC++ и не уверен в том что на нём можно написать прогу меньше 1Кб. Был бы очень признателен если бы меня убедили в обратном.


Я не сказал "меньше" я сказал "не больше". Почувствуйте разницу.
Что-то мне не верится, что ты используя самый навороченный ассм сможешь написать приложение под Windows меньше 1к, которое загружается стандаотным загрузчиком Докажешь обратное?

Цитата:
Originally posted by yGREK

Например - exe,cpp,и bat для сборки. main(){printf("Hello world");} вполне достаточно.


А ты хитрец... :D
printf - не очень и простой метод, парсинг строки формата вывода, подстановка неопределенного количества аргументов, а потом уж вывод на экран. Не думаю, что это элементарная задача для ассма.
Кроме того, ты не указал ОС под которой это все должно выполнятся. А соотв. если это Windows, то файл меньшее 1к не получится (заголовок как минимум 512 байт и хотябы одна секция - 512 байт).
Ну раз так, вот код (test.cpp, Makefile):

Код:
// test.cpp

#include <windows.h>

int printf(char* str)
{
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    DWORD n;
    WriteFile(hStdOut, str, strlen(str), &n, NULL);
    return n;
}


int main()
{
  printf("Hello world");
}

Код:
# Makefile for test.exe

CC =cl
CFLAGS = /O1 /Os /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Zp1 /W0 /nologo /c /TP

LINKER = link
LFLAGS = /INCREMENTAL:NO /NODEFAULTLIB /SUBSYSTEM:CONSOLE LIBC.LIB kernel32.lib /ENTRY:main \
         /MERGE:.rdata=.text /MERGE:.data=.text /FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078

default: test.exe

%.obj:%.cpp
    $(CC) $(CFLAGS) $@

test.exe: test.obj
    $(LINKER) $(LFLAGS) $* /OUT:$@

В результате получается файл ровно 1к, но он добит нулями до этого размера.

Цитата:
Originally posted by yGREK

Вот именно для удобства - а за всё как известно платить надо. Поскольку одно и то же действие на АСМе можно сделать по разному, а на ЯВУ пишешь одну коротенькую строчку для этого действия - компилятору самому приходиться выбирать способ реализации. И вот это узкое место.


Ну если ты пустишь все на самотек, то так оно и выйдет. Но ведь можно разумно управлять процессом компиляции, разумно выбрать и сам компилятор.
Я бы не стал впрягать сюда Java, т.к. мы говорим о несколько других вещах. Java-компиляторы все же не производят в конечном итоге машинный код в отличие от компиляторов ассеблера и C/C++.

6.0K
04 июня 2004 года
TarasCo
28 / / 10.03.2004
Создание мелких пэешников на Builder
http://borland.xportal.ru/forum/viewtopic.php?t=5128
7.1K
05 июня 2004 года
yGREK
6 / / 28.03.2004
Цитата:
Originally posted by Green

Я бы не стал впрягать сюда Java, т.к. мы говорим о несколько других вещах. Java-компиляторы все же не производят в конечном итоге машинный код в отличие от компиляторов ассеблера и C/C++.


ЯВУ означает Язык Высокого Уровня

У меня сейчас сессия и я занят несколько другими вещами. Потом поговорим. Тема ещё не закрыта. Надо всё проверить.

1.8K
06 июня 2004 года
MishaSt
170 / / 11.08.2003
Цитата:
Originally posted by Green

Может проблема в том, что "вирусы" сейчас пишут все кому не лень, а реальным программистам это уже не интересно?


Да, неинтересно, ибо разделение привелегий....А универсального сплоита для повышения привилегий нет, и быть не может. Это в DOS'e вирус и антивирус были на равных, а тут ясно кто победит, конечно антивирус. Хотя и в Dos'е ясно, если с дискеты загрузится, то победит антивирь. Просто интересно перехватить прерывание, не дать антивирусу запустится, модифицировать MCB блоки - спрятать вирус, перехватить int21h, прятать вирус при посмотре заражённого exe-файла, шифроваться. А в вин такого не провернёшь. Тут победитель ясен - антивирус!

3
07 июня 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by MishaSt

Да, неинтересно, ибо разделение привелегий....А универсального сплоита для повышения привилегий нет, и быть не может. Это в DOS'e вирус и антивирус были на равных, а тут ясно кто победит, конечно антивирус. Хотя и в Dos'е ясно, если с дискеты загрузится, то победит антивирь. Просто интересно перехватить прерывание, не дать антивирусу запустится, модифицировать MCB блоки - спрятать вирус, перехватить int21h, прятать вирус при посмотре заражённого exe-файла, шифроваться. А в вин такого не провернёшь. Тут победитель ясен - антивирус!



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

А не интересно реальным программистам сейчас писать вирусы потому, что есть другие более интересные и важные дела.

487
19 июня 2004 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by Green


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

А не интересно реальным программистам сейчас писать вирусы потому, что есть другие более интересные и важные дела.



Краткое резюме: вирусы пишут на всем чем можно
...И на чем нельзя - тоже пишут...
Отдельно автору сабжа: имей ввиду, что для вирмаков в УК РФ отдельная статья предусмотрена, между прочим. И лучше бы занялся серьезным делом а не баловством. Детские это забавы. И для серьезного программера несолидно такой послужной список иметь.

57K
26 февраля 2010 года
ChASnock
3 / / 26.02.2010
Цитата: programist121
Можно ли на ассемблере писать вирусы? Если нет тогда на чем можно?



:eek::confused: обычно на ассемблере вирусы и пишут :D

8.2K
26 февраля 2010 года
bagie2
299 / / 26.10.2008
Цитата:
А соотв. если это Windows, то файл меньшее 1к не получится (заголовок как минимум 512 байт и хотябы одна секция - 512 байт).


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

399
26 февраля 2010 года
KIV
432 / / 20.01.2009
Цитата:
В несколько десятков байт можно уложиться. Точно не знаю какой мировой рекорд, но очень мало. Ведь секция может иметь физический размер 0, а код можно и хранить в заголовке в "неиспользуемых" полях, к примеру.


Если это возможно, то размер файла всё равно будет не меньше 512 байт - размер заголовка PE.

18K
26 февраля 2010 года
logree
102 / / 27.09.2008
я думаю уважаемому programist121(который тут к стати небыл уже 6 лет) будут очень интересны ваши ответы :)
8.2K
26 февраля 2010 года
bagie2
299 / / 26.10.2008
ну блин. тему подняли какую =)

KIV
не, можно и меньше 512. покажу как найду
9
26 февраля 2010 года
Lerkin
3.0K / / 25.03.2003
Цитата: ChASnock
:eek::confused: обычно на ассемблере вирусы и пишут :D


Челябинские вирусмейкеры - такие суровые.

8.2K
27 февраля 2010 года
bagie2
299 / / 26.10.2008
KIV

Вот у меня получился в 300 байт. На fasm. правда он на висте (и наверное на семерке) не запускается, лень разбираться =) на вин2000, хп, 2003 работает. где то видел около 100 байт или меньше PE-файл, вроде... хотя урезать кажется там уже нечего.

Код:
use32
.start:
db 'MZ'       ; MZ Signature
inc ebp
push edx 0 0
jmp @f
db 2 dup 0
db 'PE',0,0   ; PE Signature
dw 0x014c     ; Machine Type
dw 0x0001     ; Number of Sections
@@:
call @f
db 'Hi!',0
@@:
jmp @f
db 1 dup 0
dw 0x00e0     ; Size of Optional Header
dw 0x0002     ; Flags
dw 0x010b     ; Magic
.MessageBoxA:db 0,0,'MessageBoxA',0
dd 0x00000000 ; Entry Point
db 4 dup 0
dd 0x0000000c
dd 0x00010000 ; ImageBase
dd 0x00001000 ; Section Alignment
dd 0x00000200 ; File Alignment
@@:
push 0
jmp @f
db 4 dup 0
dw 0x0004     ; Subsys Major Version
dw 0x0000     ; Subsys Minor Version
db 4 dup 0
dd 0x00002000 ; Size of Image
dd 0x00001000 ; Size of Headers
db 4 dup 0
dw 0x0002     ; Subsystem
@@:
call dword [0x00010000+0x00001000+.IAT+0x0000]
retn
db 15 dup 0
dd 0x00000010 ; Number of RVA and Sizes
db 8 dup 0
dd 0x00001000+(.import_table-.start) ; Import Table RVA
dd 1                     ; Import Table Size
db 8 dup 0
.IAT:dd 0x00001000+.MessageBoxA,0
db 20 dup 0
.import_table:
db 12 dup 0
dd 0x00001000+.User32
dd 0x00001000+.IAT
db 56 dup 0
dq 0           ; Section Name
dd 0x00001000  ; Virtual Size
dd 0x00001000  ; Section RVA
dd filesize-1  ; Raw Size
dd 0x00000001  ; Raw Offset
.User32:db 'USER32.DLL',0,0
dd 0xc0000000  ; Characteristics
filesize=$-.start
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог