Компилятор C на 510 байт
От: Shmj Ниоткуда  
Дата: 09.06.23 14:33
Оценка: 5 (4)
В кодировке base64 он выглядит так:

  Скрытый текст

6gUAwAdoADAfaAAgBzH/6DABPfQYdQXoJQHr8+gjAVOJP+gSALDDqluB+9lQdeAG/zdoAEAfy+gI
AegFAYnYg/hNdFuE9nQNsOiqiwcp+IPoAqvr4j3/FXUG6OUAquvXPVgYdQXoJgDrGj0C2nUGV+gb
AOsF6CgA68Ow6apYKfiD6AKrifgp8CaJRP7rrOg4ALiFwKu4D4Srq1fonP9ewz2N/HUV6JoA6BkA
ieu4iQRQuIs26IAAWKvD6AcAieu4iQbrc4nd6HkA6HYA6DgAHg4fvq8Bra052HQGhcB19h/DrVCw
UKroWQDoGwC4WZGrW4D/wHUMuDnIq7i4AKu4AA+ridirH8M9jfx1COgzALiLBOucg/j4dQXorf/r
JIP49nUI6BwAuI0G6wyE0nQFsLiq6wa4iwarAduJ2KvrA+gAAOhLADwgfvkx2zHJPDkPnsI8IH4S
weEIiMFr2wqD6DABw+gqAOvqicg9Ly90Dj0qL3QSPSkoD5TGidjD6BAAPAp1+eu86Ln/g/jDdfjr
slIx9osEMQQ8O3QUuAACMdLNFIDkgHX0PDt1BIkEMcBaw/v/A8H9/yvB+v/34fb/I8FMAAvBLgAz
wYQA0+CaANP4jwCUwHf/lcAMAJzADgCfwIUAnsCZAJ3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAVao=



Тут.

Правда я так и не понял какие практические преимущества это дает. Вмещается в загрузочный сектор. И что? Какие новые возможности это открывает?
Re: Компилятор C на 510 байт
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 09.06.23 15:13
Оценка:
Здравствуйте, Shmj, Вы писали:

S>какие практические преимущества это дает


Никаких, кроме демонстрации того, что код, занимающий меньше нескольких мегабайт, внезапно способен делать что-то осмысленное.
Re: Компилятор C на 510 байт
От: sambl74 Россия  
Дата: 09.06.23 15:43
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Правда я так и не понял какие практические преимущества это дает. Вмещается в загрузочный сектор. И что? Какие новые возможности это открывает?


Вбиваешь вот эти 512 байт и потом можешь дальше писать уже на "почти" сишке
Re[2]: Компилятор C на 510 байт
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 09.06.23 16:03
Оценка:
Здравствуйте, sambl74, Вы писали:

S>Вбиваешь вот эти 512 байт


Куда именно вбиваешь?

S>и потом можешь дальше писать уже на "почти" сишке


Если до вбивания была возможность писать на полноценной сишке, то какие новые возможности появляются после вбивания?
Re[2]: Компилятор C на 510 байт
От: Shmj Ниоткуда  
Дата: 09.06.23 17:10
Оценка:
Здравствуйте, sambl74, Вы писали:

S>Вбиваешь вот эти 512 байт и потом можешь дальше писать уже на "почти" сишке


А если не 512 байт а больше займет — то что при этом теряется?
Re: Компилятор C на 510 байт
От: _ilya_  
Дата: 09.06.23 19:56
Оценка: +2
Здравствуйте, Shmj, Вы писали:

S>Правда я так и не понял какие практические преимущества это дает. Вмещается в загрузочный сектор. И что? Какие новые возможности это открывает?


Вирус и то тяжко будет в такой размер.
Тетрис в машинном коде у меня в 2кб и то он был играбельный но без фишек типа подсчета очков... Просто стакан, фигуры и управление.
Компилятор скорее скобочных выражений может и можно уместить, но точно не С. В 5кб можно впихнуть чего-то крутое, но не в 500 байт.
Отредактировано 09.06.2023 20:04 _ilya_ . Предыдущая версия .
Re: Компилятор C на 510 байт
От: Alekzander  
Дата: 09.06.23 22:21
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Тут.


S>Правда я так и не понял какие практические преимущества это дает. Вмещается в загрузочный сектор. И что? Какие новые возможности это открывает?


Вызовы vga_init()/vga_clear()/vga_set_pixel() ведут на захардкоженный рантайм, я так понял. Без стандартной библиотеки далеко не уедешь.
Re[2]: Компилятор C на 510 байт
От: CreatorCray  
Дата: 09.06.23 23:40
Оценка:
Здравствуйте, _ilya_, Вы писали:

__>Вирус и то тяжко будет в такой размер.

Я в чуть больше сотни байт в своё время утаптывал
510 байт это уже просторы.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: Компилятор C на 510 байт
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.06.23 07:30
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Правда я так и не понял какие практические преимущества это дает. Вмещается в загрузочный сектор. И что? Какие новые возможности это открывает?


"Вмещается в загрузочный сектор" это не более 446 байт, потому что кроме 2 на маркер загрузочности ещё 64 на MS-DOS таблицу разделов.
А если учесть, что иногда надо BPB, то ещё меньше.

Возможности — любой такой рекорд это какая-то хорошая идея компактификации.
The God is real, unless declared integer.
Re[2]: Компилятор C на 510 байт
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 10.06.23 07:44
Оценка:
Здравствуйте, netch80, Вы писали:

N>"Вмещается в загрузочный сектор" это не более 446 байт


Подозреваю, что изначально речь шла просто о "секторе", а "загрузочный" к нему прицепился случайно, по привычке.
Re[3]: Компилятор C на 510 байт
От: Privalov  
Дата: 11.06.23 06:00
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Я в чуть больше сотни байт в своё время утаптывал


Я когда-то поймал вирус размером 80 байт. Это не ты его сделал?
Д. Лозинский в документации к AIDSTEST писал, что видел 60-байтовый.
Re: Компилятор C на 510 байт
От: Osaka  
Дата: 11.06.23 12:38
Оценка:
S>Правда я так и не понял какие практические преимущества это дает. Вмещается в загрузочный сектор. И что? Какие новые возможности это открывает?
Главным образом старые.

О сужайся, сожмись, забывая слова,
Предавая надежды, сдавая права,
Усыхай и твердей, ибо наша задача —
Не считая ни дыр, ни заплат на плаще,
Не любя, не зовя, не жалея, не плача,
Под конец научиться не быть вообще.

Re: Компилятор C на 510 байт
От: Muxa  
Дата: 11.06.23 17:21
Оценка:
S>Какие новые возможности это открывает?

А как на этот вопрос ответил автор в коментах?
Re[4]: Компилятор C на 510 байт
От: CreatorCray  
Дата: 11.06.23 21:32
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Я когда-то поймал вирус размером 80 байт.

Вроде как на тот момент наименьший был вроде как 102 байта. У меня не хватило где то дюжины байт чтоб до него дотянуться.

P> Это не ты его сделал?

Не, это был эксперимент и он никуда не был выпущен.

P>Д. Лозинский в документации к AIDSTEST писал, что видел 60-байтовый.

Чот мне кажется что 60 байт это будет скорее троян чем вирус (т.е. размножающийся код). Разишо бутовый, но и то есть сомнения.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: Компилятор C на 510 байт
От: Shmj Ниоткуда  
Дата: 11.06.23 22:20
Оценка:
Здравствуйте, Muxa, Вы писали:

S>>Какие новые возможности это открывает?

M>А как на этот вопрос ответил автор в коментах?

Это перевод, автор вроде на публичных форумах не писал.
Re[3]: Компилятор C на 510 байт
От: Alekzander  
Дата: 11.06.23 22:46
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Это перевод, автор вроде на публичных форумах не писал.


https://news.ycombinator.com/item?id=36064971
Re[2]: Компилятор C на 510 байт
От: LaptevVV Россия  
Дата: 12.06.23 03:15
Оценка:
__>Тетрис в машинном коде у меня в 2кб и то он был играбельный но без фишек типа подсчета очков... Просто стакан, фигуры и управление.
Я когда-то играл в 1кБ тетрис.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Компилятор C на 510 байт
От: Privalov  
Дата: 12.06.23 05:53
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Вроде как на тот момент наименьший был вроде как 102 байта. У меня не хватило где то дюжины байт чтоб до него дотянуться.


80 — я сам разбирал. Он умел только COM-файлы заражать. Нормальный вирус классического типа. Вот не помню, резидентный или нет. Безвредный. Цеплялся в конец исполняемого файла.
Я читал где-то, что теоретический предел вируса, заражающего в MS DOS файлы COM и EXE — 132 байта.
Re[6]: Компилятор C на 510 байт
От: CreatorCray  
Дата: 12.06.23 07:12
Оценка:
Здравствуйте, Privalov, Вы писали:

P>80 — я сам разбирал.

Это уже сурово кто то заморочился.

P>Он умел только COM-файлы заражать.

Есессна, для такого размера возня с EXE слишком толстая.

P>Вот не помню, резидентный или нет.

Скорее всего нет

P>Я читал где-то, что теоретический предел вируса, заражающего в MS DOS файлы COM и EXE — 132 байта.

У меня получилось для COM-only утоптать в 115 что ли. Меньше не получалось без нарушения функциональности.
За размером я тогда не особо гнался, просто как то стало любопытно сделать именно что маленький просто с наскоку, без фанатизма.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[7]: Компилятор C на 510 байт
От: Privalov  
Дата: 12.06.23 08:13
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Это уже сурово кто то заморочился.


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

CC>Скорее всего нет


Детали работы вируса полностью вылетели из головы. Механизм размножения тоже забыл. Помню, что я его в AFD смотрел.

Мне еще приходилось с вирусами разбираться. Я могу только сказать, что их делали непонятно кто непонятно зачем. Все тупо. Я только одну деталь запомнил: вирус какую-то часть себя зашифровывал xor-ом по однобайтному ключу, а ключ записывал в ячейку таймера, запретив прерывания. Я этот участок раскручивал с помощью утилиты HIEW. А зачем оно мне понадобилось, тоже не помню. Возможно, вирус там что-то от зараженного им файла хранил.
Re[8]: Компилятор C на 510 байт
От: CreatorCray  
Дата: 12.06.23 08:20
Оценка:
Здравствуйте, Privalov, Вы писали:

P>их делали непонятно кто непонятно зачем.

Ну, по началу по приколу делали.
Это потом уже говнюки всякие поставили на коммерческую основу. Даже конструкторы вирусни продавали, там уже посерьёзнее навороты были чем xor
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: Компилятор C на 510 байт
От: Pzz Россия https://github.com/alexpevzner
Дата: 12.06.23 08:44
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Правда я так и не понял какие практические преимущества это дает. Вмещается в загрузочный сектор. И что? Какие новые возможности это открывает?


Можно операционку написать, у которой в бут секторе компилятор Си, а все остальное в исходниках, компилируется прямо в память в процессе загрузки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.