• О макровирусах в Turbo Pascal.

    Алгоритм раскраски во встроенном редакторе немного отличается от того, как понимает синтаксис компилятор. А именно, конструкция () воспринимается редактором как законченный комментарий, а компилятором — как начало комментария. Это может использоваться, чтобы внутри комментариев вставлять синтаксически раскрашенные участки, например, демонстрация способа использования. Или, например, существуют Паскаль-вирусы, которые записывают своё тело после 80й колонки, используя (), чтобы старый текст выглядел без изменений. Область распространения ограничена местами, где запускаются программы на Turbo Pascal, зато в самих этих местах бороться с Паскаль-вирусами было нетривиально. Антивирусы тех времён были бессильны против этих первых представителей макровирусов.
    Используя (*), можно добиться и обратного: заставить код выглядеть как комментарий или как ассемблерный код:
    program HelloWorld; () {)
    begin (} asm ()
    WriteLn('Hello, World!'); () end ()
    ReadLn; () {)
    end. (} ()
    Будучи набранным в интегрированной среде, поставляемой с Turbo Pascal, этот код будет разноцветным.
    ru.wikipedia.org
    ♡ recommended by @OCTAGRAM

Replies (3)