.CRK/.XCK infection

# О ЗАРАЖЕНИИ .CRK/.XCK ФАЙЛОВ

## О ФАЙЛАХ

В .CRK и .XCK файлах, как известно, хранятся отличия файлов исходных от файлов похаканных.
В общем случае отличия хранятся так:

    -------------------------------
    всякие комментарии
    HACKME.EXE
    00012345: 74 EB
    ...
    -------------------------------

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

## ЗАРАЖЕНИЕ

Рассматривается ситуация, когда на диске есть крак (.CRK/.XCK), а самого файла как бы нет.
(я говорю о том файле, на который крак направлен, в примере - HACKME.EXE)

Заражение происходит в 3 этапа:

1. при нахождении крака - сохраняем его содержимое в тело вируса
2. при нахождении исполняемого файла,
   если в вирусе сохранен крак, направленный на этот файл
   - заражаем файл вирусом
   - изменяем крак таким образом, чтобы он содержал вирус
3. при повторном нахождении крака - сохраняем "зараженный" крак поверх исходного

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

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

## ПРИМЕР

    --исходный крак----------------
    всякие комментарии
    HACKME.EXE
    00012345: 74 EB
    ...
    -------------------------------

    --"зараженный" крак------------
    всякие комментарии
    HACKME.EXE
    00005F00: 00 0F    // вирус
    00005F01: 00 01
    ...
    00012345: 74 EB    // старый крак
    ...
    -------------------------------

## ОГРАНИЧЕНИЯ

- Очевидно, что в один вирус много краков не напихаешь. Утешает то, что их можно сжать, ибо числа в них шестнадцатиричные, а последующие смещения изменяемых байт склонны не сильно (часто на 1) отличаться от предыдущих.
- Что касается комментариев в краках, то вообще можно их не хранить, можно хранить частично, а можно генерировать из фиксированного набора строк.
- На метод заражения накладываются серьезные ограничения.
  Например файл не должен увеличивать свою длину, и тогда заражение должно происходить записью вируса (или троянца) в нулевые области файла, либо в области стандартных библиотек, что сложнее.
- Понятно, что зараженные краки будут весьма большими (+длина_вируса*17), что сильно демаскирует объект.
- Также ясно, что на заражение краков уходит много времени. (в рассматриваемом случае смена 2х компьютеров, хотя может быть и 0 и 100)
- Кряки редко используют. (в смысле один раз крак применили, и все)

## ЗАЧЕМ

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

Да и вообще, заражать нужно ВСЕ. И ПОБОЛЬШЕ, ПОБОЛЬШЕ! ;-)