О ЗАРАЖЕНИИ .CRK/.XCK ФАЙЛОВ
О ФАЙЛАХ
В .CRK и .XCK файлах, как известно, хранятся отличия файлов исходных от
файлов похаканных.
В общем случае отличия хранятся так:
-------------------------------
всякие комментарии
HACKME.EXE
00012345: 74 EB
...
-------------------------------
Поскольку сей текст для людей более-менее понимающих, я здесь не буду
подробно (да и вообще) описывать формат этих несчастных файлов.
ЗАРАЖЕНИЕ
Рассматривается ситуация, когда на диске есть крак (.CRK/.XCK),
а самого файла как бы нет.
(я говорю о том файле, на который крак направлен, в примере - HACKME.EXE)
Заражение происходит в 3 этапа:
- при нахождении крака - сохраняем его содержимое в тело вируса
- при нахождении исполняемого файла,
если в вирусе сохранен крак, направленный на этот файл
- заражаем файл вирусом
- изменяем крак таким образом, чтобы он содержал вирус
- при повторном нахождении крака - сохраняем "зараженный" крак поверх исходного
В результате чего все файлы, к которым будет применен такой модифицированный
крак станут заражены вирусом.
Очевидно, на этапы заражение разделено потому, что на одном компьютере
может быть крак, но не быть файла, и наоборот.
Таким образом крак будет "ходить" вместе с вирусом до тех пор, пока не будет
найден нужный ему файл.
ПРИМЕР
--исходный крак----------------
всякие комментарии
HACKME.EXE
00012345: 74 EB
...
-------------------------------
|
--"зараженный" крак------------
всякие комментарии
HACKME.EXE
00005F00: 00 0F // вирус
00005F01: 00 01
...
00012345: 74 EB // старый крак
...
-------------------------------
|
ОГРАНИЧЕНИЯ
- Очевидно, что в один вирус много краков не напихаешь.
Утешает то, что их можно сжать, ибо числа в них шестнадцатиричные,
а последующие смещения изменяемых байт склонны не сильно (часто на 1)
отличаться от предыдущих.
- Что касается комментариев в краках, то вообще можно их не хранить,
можно хранить частично, а можно генерировать из фиксированного набора
строк.
- На метод заражения накладываются серьезные ограничения.
Например файл не должен увеличивать свою длину, и тогда
заражение должно происходить записью вируса (или троянца) в нулевые
области файла, либо в области стандартных библиотек, что сложнее.
- Понятно, что зараженные краки будут весьма большими (+длина_вируса*17),
что сильно демаскирует объект.
- Также ясно, что на заражение краков уходит много времени.
(в рассматриваемом случае смена 2х компьютеров, хотя может быть и 0 и 100)
- Кряки редко используют. (в смысле один раз крак применили, и все)
ЗАЧЕМ
- Кряки не проверяются антивирусами. (теперь наверно будут)
- При отсутствии файла определить вероятность заражения
можно только по длине крака.
- Кряки, хоть и меньше чем файлы, но распространяются.
- Кряки, как и файлы, склонны попадать на компакты.
Да и вообще, заражать нужно ВСЕ. И ПОБОЛЬШЕ, ПОБОЛЬШЕ! ;-)