Які загрози безпеки несуть знавці Ассемблера?

  1. Калькулятори під навантаженням
  2. Future Crew повернулися з майбутнього
  3. 1993 - рік Second Reality і Eclipse
  4. У 1994 році перше місце зайняла демо Verses від групи EMC
  5. Переможець Assembly 1995: Додати Stars групи NoooN
  6. Ера тотального 3D
  7. Assembly по-новому
  8. Переможець Assembly 2000: Spot групи Exceed
  9. Переможець Assembly 2001: Lapsuus групи Maturefurk
  10. Переможець Assembly 2003: Додати Legomania групи Doomsday.
  11. Переможець Assembly 2004: Додати Obsoleet групи Unreal Voodoo:
  12. У 2007 році перемогла LifeForce групи ASD:
  13. Рік випуску 2008 - рік під знаком Епсілон
  14. Переможець 2009 року
  15. Переможець Assembly 2010: Додати Happiness is right around the bend групи ASD
  16. Переможець Assembly 2011 - Spin групи ASD:
  17. Che Guevara групи Fairlight - 2005 рік:
  18. Але краще компактне демо за всю історію змагань - це робота 2010 року X marks the spot групи Portal process:

Нещодавно Євген Касперський опублікував в своєму блозі запис « Привиди вірус-опери, або Ситхи Ассемблера «, Присвячену надкомпактний і потужним шкідливим програмам, виявленим недавно, але написаним в стилі 15-річної давності. Мій вік дозволяє пам'ятати цих хлопців і їх блискучу роботу - мова ж не обов'язково про творців вірусів, вони були лише частиною співтовариства програміста, який спеціалізувався на «ручному» написанні коду і програмуванні на асемблері. Це схоже на Джедаев і Сітхів зі світу «Зоряних воєн» - істот, чия зброя, лазерні мечі, було вкрай специфічним і, незважаючи на це, сприймалося всіма іншими героями як одне з найпотужніших (крім жартів, запитаєте Йоду). На жаль, схоже, людей, які пам'ятають цих майстрів-програмістів, залишилося троє (я, Касперський і Білл Гейтс). А якщо серйозно - в сьогоднішньому світі, де драйвер мишки займає 50 мегабайт, досить важко уявити, на що здатний хакер старої школи при зовсім невеликій кількості виділених ресурсів. Тому я вирішив показати, про що говорить Євген, на дещо іншому прикладі - а ви вже вирішуйте, наскільки погані новини про «олдскульних» авторів зарази. Нещодавно Євген Касперський опублікував в своєму блозі запис «   Привиди вірус-опери, або Ситхи Ассемблера   «, Присвячену надкомпактний і потужним шкідливим програмам, виявленим недавно, але написаним в стилі 15-річної давності

Калькулятори під навантаженням

У 1992 році комп'ютери не були «мультимедійними» і представляли собою швидше калькулятор з великим екраном. На переважній більшості з них не було ні мікрофонів, ні пристойної можливості відтворювати звук - і, звичайно, забудьте про веб-камерах. Там навіть мишка була далеко не завжди, і перша більш-менш популярна версія Windows, 3.1, вийшла якраз в середині весни. Але існувало кілька груп ентузіастів, які любили важкі програмістські завдання: використовувати всю доступну пам'ять, систему команд процесора, а головне - кожен такт його потужності, щоб вичавити з комп'ютера 100% того, на що він здатний. І за відсутності звукової карти, 3D-акселератора і всього того, що сьогодні є в кожному смартфоні, вони змушували ті «калькулятори» малювати складну 3D-анімацію з музикою і спецефектами і робити інші речі, на перший погляд неможливі. Демонстрація неможливого дуже логічно і коротко називалася «демо». Щоб створити її, потрібно було бути дійсно творчою людиною, в деталях, в тому числі недокументованих, знати принципи роботи системи, пити багато кави або чогось міцнішого, а головне - мати захмарний IQ. Саме цей рух, пізніше назване «демосцену», зародилося в середині вісімдесятих, але за законами еволюції рано чи пізно його учасникам треба було змагатися між собою. Так народилися фестивалі-конкурси творців «демо», одним з найбільших і найвідоміших став The Assembly, вперше проведений в 1992 році.

Так народилися фестивалі-конкурси творців «демо», одним з найбільших і найвідоміших став The Assembly, вперше проведений в 1992 році

Future Crew повернулися з майбутнього

У 1992 році група скандинавських програмістів під назвою Future Crew разом з друзями з груп Complex і Amiga організували захід під назвою The Assembly, щоб показати світу результати своєї вражаючої роботи на Асемблері і позмагатися за звання «Кращий кодер року».

Демо - жанр комп'ютерного мистецтва, мультимедійна презентація, створена для демонстрації можливостей і знань в області програмування, графіки, 3D-моделювання та створення музики.

Взагалі кажучи було кілька номінацій, але найцікавішими, приблизно як «Кращий фільм» і «Кращий режисер» на «Оскарі», стали звання «Краща демо для ПК», аналогічні титули для платформ Amiga і C64, а також окрема (і особливо цікава нам сьогодні) номінація «Демо розміром менше 64 кілобайт для ПК». У перших номінаціях було потрібно продемонструвати максимум можливостей платформи, які можна вичавити за допомогою оптимального, артистичного навіть, програмування. Остання була непроста - на зберігання всієї програмної частини, всіх графічних і звукових елементів відводилося всього 64 кілобайт. Це, безумовно, спонукало до елегантного і економного програмування - адже в обсяг, в якому сьогодні ледве поміщається картинка середнього розміру, творці «впихати» міні-фільм тривалістю кілька хвилин.
У 1992 році в змаганні перемогла група Future Crew з демо Unreal. Назва була вибрана не дарма - до тих пір ніхто не міг вичавити з комп'ютера подібні графічні ефекти: рендеринг сцен в трьох вимірах і реальному часі, складні фізичні обчислення і моделювання потоків світла і т.п.

А найцікавіше - все-все-все для запуску демо, включаючи музику, містилося в 1 Мб! Досягти цього можна було, тільки майстерно програмуючи на Асемблері - за зовнішньою простотою цієї мови ховається диявольська його складність і трудомісткість при написанні великих програм, важко не допустити помилок. Ось що з цього приводу говорили мені хлопці з Future Crew:

Навчання програмуванню демо - довгий і складний процес. Щоб навчитися як слід, йдуть роки. Можна почати з мови високого рівня (Паскаль або Сі), а потім починати експерименти з Ассемблером. На те, щоб все освоїти, йде багато часу, багато експериментів, і способів скоротити термін не існує. Основне заняття - зрозуміти, що ви зробили, потім міняти програму і стежити, що виходить, і набирати досвід в тому, як найкраще вирішувати ті чи інші завдання. Навчання якісному програмування вимагає терпіння, ентузіазму і хмару часу!

Ті, хто тоді брав участь у змаганнях, стали Джерелом Натхнення для розробників пізніших додатків. Ні, у них не крали ідеї, але брали на озброєння самі підходи до вирішення проблем та творче бачення. З натхнення Assembly виросли ВСЕ сучасні ігри, продукти Adobe для роботи з відео і графікою, прогнози погоди, GPS-додатки і Google Earth - вся багатомільярдні індустрія комп'ютерної візуалізації.

1993 - рік Second Reality і Eclipse

Успіх Assembly був такий великий, що на наступний рік число відвідувачів і кількість робіт на конкурсі подвоїлася (цей тренд зберігався багато років, і з 1999-го The Assembly проводиться на найбільшому футбольному стадіоні Гельсінкі). На ньому знову - абсолютно заслужено - перемогла робота Future Crew. Демо «Друга реальність», Second Reality, підняла планку якості на величезну висоту і суттєво вплинула на світ програмування.

Якщо графіка вас не вражає, варто згадати, що демо створювалася ДО появи самого першого процесора Intel Pentium і працювала на комп'ютерах x486 БЕЗ графічного прискорювача. Second Reality глибоко вразила журі та всі программистское співтовариство, показавши, чого можна досягти професійною роботою з Ассемблером і мінімалістичним підходом, - скомпільовані файли демо займали близько 1,5 Мб. Творці, Future Crew, стали всесвітньо відомі.

Це відео «За лаштунками Future Crew» часів створення Second Reality.

У 1994 році перше місце зайняла демо Verses від групи EMC

Вони продемонстрували, що фізичні обчислення для реалістичного відображення води і морфинг 3D-об'єктів цілком можуть бути зроблені за допомогою процесора Pentium.

А переможця в номінації 64 кб, Airframe групи Prime, можна назвати мамою і татом сучасних 3D-авіасимуляторів.

Просто щоб показати, як швидко еволюціонував код з розвитком комп'ютерів, наведемо всіх переможців з 1995 по 2012 рік:

Переможець Assembly 1995: Додати Stars групи NoooN

Переможець Assembly 1996: Machines of Madness групи Dubius

Переможець Assembly 1997: Додати Boost групи Doomsday

Переможець Assembly 1998: Додати Gateways групи Trauma


Це, до речі, попередник візуального рішення World of Warcraft і всіх 3D MMORPG.

Ера тотального 3D

У 1999 році з'явився масовий відеоакселератор від 3DFX, змінивши графіком назавжди. І демо Virhe групи MatureFunk вичавило з новою технологією все, мало не підірвавши мозок перших глядачів:

Assembly по-новому

З 2000 року правила трохи змінилися - пропало розподіл по платформах Amiga, PC і C64. Демо стали змагатися в категоріях Combined demo, Oldschool demo і 64kb limit intro. Остання пішла в історію з 2010 року, але в кінці поста ви побачите кілька по-справжньому фантастичних прикладів того, що може зробити гуру-кодер на Асемблері всього з 64 кб.

Ось список переможців в категорії Combined demo, де продемонстровано високу майстерність володіння Ассемблером:

Переможець Assembly 2000: Spot групи Exceed


Ці вражаючі світлові ефекти - не забувайте! - створені на технологіях тринадцятирічної давності!

Переможець Assembly 2001: Lapsuus групи Maturefurk

Переможець Assembly 2002: Додати Liquid ... Wen? групи Haujobb


Підкреслю ще раз, що основна причина компактності демо і причина захоплюватися ними в тому, що це не записане заздалегідь відео, а результат проведених в реальному часі обчислень.

Переможець Assembly 2003: Додати Legomania групи Doomsday.

Скажіть «привіт» основним консольним 3D-ігор :).
І, я думаю, саме тоді народилося бачення, яким буде Nintendo Wii:

Переможець Assembly 2004: Додати Obsoleet групи Unreal Voodoo:

Перший приз Assembly 2005 року отримав демо Iconoclast групи ASD:

У 2006 році демо Starstruck групи Black Lotus знову зробила переворот

Творці вийшли на новий рівень складності в програмуванні графіки. Я б сказав, планка знову піднялася, і сильно:

У 2007 році перемогла LifeForce групи ASD:

Ще одна фантастично красива робота

Рік випуску 2008 - рік під знаком Епсілон

A точніше - демо Within Epsilon групи Pyrotech:

Переможець 2009 року

І мій особистий фаворит - Frameranger, створена об'єднаними зусиллями груп Fairlight, CNCD і Orange:

Переможець Assembly 2010: Додати Happiness is right around the bend групи ASD

:

Переможець Assembly 2011 - Spin групи ASD:

А завершує цей ряд феноменальна робота 2012 року Spacecut груп Carillon і Cyberaid CNCD:

64 кілобайт як виклик майстерності

Просто для розуміння того, що девальвовані майже до «ніщо» 64 кілобайт - це дуже багато для професіонала, наведу кілька кращих прикладів демо в категорії «до 64»:

Che Guevara групи Fairlight - 2005 рік:

Ну а трьома роками пізніше, в 2008 році, та ж група показала, до чого відточили навички за цей час і примудрилася запхати в 64 кб ось таке демо, що заслужило перший приз в категорії - Panic room:

Але краще компактне демо за всю історію змагань - це робота 2010 року X marks the spot групи Portal process:

А тепер повернемося до дня сьогоднішнього. Всі ці демо, особливо 64-кілобайтні, показують, яких результатів може досягти талановитий програміст старої школи, якщо здасться метою, і якщо він є майстром Ассемблера, що не дуже поширене в наші дні, коли продукти створюються в візуальних середовищах і на мовах високого рівня абстракції - Java, і їм подібних.

Уявіть собі на хвилинку, що такий програміст або група начебто Future Crew кидає всі ці вправи з 3D і направляє всю енергію та ентузіазм на створення маленького додатки, яке краде вашу фінансову інформацію або допомагає змінити калібрування промислового обладнання - від центрифуги до ядерного реактора. Що думаєте, у них вийде? Наскільки великою буде ця програма, з урахуванням їх успіхів на ниві 64к? Чи знайдуть вони шлях обійти захист, вбудовану в продукти Microsoft або Apple? Чи достатньо у них грошей, якщо вони успішно проводили захід з безкоштовним входом на 5000 відвідувачів протягом 20 років?

Я не буду відповідати на ці питання. Зробіть це самі. Але коли я чую від когось: «мій комп'ютер не вимагає захисту», я згадую Second reality і починаю молитися.

На щастя, хлопці з Future Crew і сьогодні дуже зайняті. Звичайно, демо були захопленням молодості, а сьогодні вони зайняті серйозним бізнесом. Як група Future Crew не випустили нічого після музичного редактора Scream Tracker 3 (грудень 1994 року), і, хоча офіційного розпуску не було, шляхи хлопців розійшлися в другій половині дев'яностих. Але частково або повністю з колишніх учасників Future Crew складаються багато відомих і сьогодні проекти: Futuremark (Тести 3DMark), Remedy (Гри Max Payne, Death Rally, Alan Wake), Bugbear Entertainment (FlatOut, Glimmerati, Rally Trophy), Bitboys (компанія-виробник графічного обладнання, надалі куплена ATI), і т.п.

Хочеться сказати їм спасибі - вони змінили світ, і показали, як багато можливо, якщо як слід подумати і докласти зусиль. Це ж бачення ми використовуємо при розробці Kaspersky Internet Security . Дякую за натхнення, хлопці. І я щиро сподіваюся, що жоден програміст, коли-небудь брав участь в The Assembly не використав свої знання і навички для недобрих справ.

Wen?
Що думаєте, у них вийде?
Наскільки великою буде ця програма, з урахуванням їх успіхів на ниві 64к?
Чи достатньо у них грошей, якщо вони успішно проводили захід з безкоштовним входом на 5000 відвідувачів протягом 20 років?