Каспер изнутри

Общий Hi. Сегодня я расскажу вам удивительные вещи. Кого-то они порадуют; кто-то зло плюнет в экран; кто-то будет рвать волосы, причем не на голове. Однако, все это не важно.

Итак. Есть каспер, и есть авп. И есть его базы в формате .avc, коий раскладывается на составляющие программой AVPX. А внутри баз лежат coff obj-файлы. И вторым двордом в этих файлах......

Каким хуем, спросит наивный читатель, какой-то там дворд связан с конторой каспера?! Спокойно. Вот каким. В этом дворде хранятся дата и время _компиляции_ файла, то есть тот великий момент, когда сорец становится obj'ом.

Казалось бы, ну и что с того? Ан, не тут-то было. Из времен и дат создания лечащих вирусы obj'ей, можно извлечь весьмааа интересную информацию, например о том, как работает любимая нами контора.

Итак, были выполнены примерно следующие действия:

Теперь о критериях.

  1. Все имеющиеся obj'и (2590 штук). На графиках обозначены красным цветом.
  2. obj'и от сентября 2000-го года и старше. На графиках обозначены желтым цветом.
  3. obj'и, исходником которых является файл с расширением .asm (имена исходников прописываются во всех без исключения obj'ах). Замечу, что, согласно имеющейся информации, большинство таких файлов написано бездарным богдановым. На графиках обозначены зеленым цветом.
  4. obj'и для win32- и win9X- вирусов. На графиках обозначены синим цветом.

Зависимость количества выпущенных OBJ'ей от времени суток:

час01234567891011121314151617181920212223
всего 11130101032295154267314207245286356287206118194
последние110000000247125557313319282428972
.asm 00000000023481365934343643920261560
win32/9x 000000000042813121061326912440

Как видно, основная часть конторы начинает работать в 10 утра, а расходится в 8-9 вечера. Два пика наблюдаются где-то к 2-м часам дня и в 6 часов вечера. Можно предположить, что после двух у них обед. Конечно, эта инфа не такая уж и секретная... Просто радует сам факт ее обнаружения посредством анализа общедоступных баз.

Зависимость количества выпущенных OBJ'ей от дня недели:

день неделиПнВтСрЧтПтСбВс
всего 550530473429315178116
последние43118334156209
.asm 5712159140682510
win32/9x 11242427121213

Интуиция мне подсказывает, что, судя по графику, контора находится на второй стадии болезни Паркинсона. Иначе чем объяснишь такое рвение в понедельник, к пятнице сходящее на нет? Не могу удержаться, процитирую:

<<...первый признак  опасности  состоит  в том,  что   среди   сотрудников
появляется человек,  сочетающий  полную  непригодность  к  своему  делу  с
завистью к чужим успехам. Ни то, ни  другое  в  малой  дозе  опасности  не
представляет, эти  свойства  есть  у  многих.  Но  достигнув  определенной
концентрации  (выразим  ее  формулой  N3Z5),  они  вступают  в  химическую
реакцию.  Образуется  новое  вещество,  которое  мы  назовем  непризавием.
Наличие его определяется по  внешним  действиям,  когда  данное  лицо,  не
справляясь со своей работой, вечно суется  в  чужую  и  пытается  войти  в
руководство. Завидев это смешение непригодности и зависти, ученый покачает
головой  и  тихо  скажет:  "Первичный,  или  идиопатический,  непризавит".
Симптомы его, как мы покажем, не оставляют сомнения.
   Вторая стадия болезни наступает тогда, когда носитель заразы хотя бы  в
какой-то степени прорывается к власти. Нередко все начинается прямо с этой
стадии, так как носитель сразу занимает  руководящий  пост.  Опознать  его
легко по упорству, с которым он выживает тех, кто способнее его, и не дает
продвинуться тем, кто может оказаться  способней  в  будущем.  Не  решаясь
сказать: "Этот Шрифт чересчур умен", он говорит: "Умен-то он умен, да  вот
благоразумен ли? Мне больше нравится Шифр". Не решаясь опять-таки сказать:
"Этот Шрифт меня забивает", он говорит: "По-моему, у Шифра больше здравого
смысла".  Здравый  смысл   -   понятие   любопытное,   в   данном   случае
противоположное уму, и означает оно преданность рутине. Шифр  идет  вверх,
Шрифт - еще куда-нибудь, и штаты постепенно  заполняются  людьми,  которые
глупее начальника, директора или председателя. Если он второго сорта,  они
будут третьего и позаботятся о том, чтобы их подчиненные были  четвертого.
Вскоре все станут соревноваться в глупости и притворяться еще глупее,  чем
они есть.
   Следующая (третья) стадия наступает, когда во  всем  учреждении,  снизу
доверху, не встретишь и капли разума. Это и будет коматозное состояние,  о
котором мы говорили в первом абзаце. Теперь учреждение можно смело считать
практически мертвым. Оно может пробыть в этом состоянии лет двадцать...>>
                                  "Законы Паркинсона"  (c) Сирил Паркинсон

Теперь рассмотрим зависимость количества выпущенных OBJ'ей от года:

год199619971998199920002001
всего 9112223174227098
последние00003128
.asm 3512361082854
win32/9x 331745550

Комментировать тут особо нечего, ну, разве что кроме какой-то глобальной перекомпиляции в 96-м.

Теперь вот о чем вспомним. Как-то каспер вякал, будто они свои новые базы тестируют чуть ли не по месяцу. Так вот, это - наглая ложь. Вот файлик, ircwormd.c, был скомпилен, когда? - 'Fri Jan 05 00:25:10 2001', то бишь ночью. А апдейт, в коий он был включен, вышел в этот же день.

Подведем итоги. К чему все это было надо? Во-первых, плюнули в рожу касперу. Во-вторых, показали, как можно круто облажаться используя отстойный майкрософтовский софт (я думаю, что 32-битные obj'и они masm'ом компиляют). В третьих, выяснили, что контора, в общем-то, работает весьма регулярно и с высокой вероятностью в конторе постоянно находится хоть кто-то способный писать нечто на C и компилять obj'и. Причем, иногда народ там засиживается допоздна. В четвертых, выяснили время, когда контора на 99% неактивна -- с часа ночи до 8-ми утра. В пятых, мы знаем, что в субботу/воскресенье контора генерит obj'и лишь на треть своей мощности. Далее, мы теперь знаем, что на 400-500 трепаков под винду, obj'и приходится писать примерно на каждые 100, то есть на четверть.

И в заключение (критика должна быть конструктивной!) процитирую еще немного из Паркинсона:

<<...на  третьей  стадии  сделать  нельзя ничего. Учреждение   практически
скончалось. Оно может обновиться, лишь переехав  на  новое  место,  сменив
название и всех сотрудников. Конечно, людям экономным захочется  перевезти
часть старых сотрудников, хотя бы для  передачи  опыта.  Но  именно  этого
делать нельзя. Это верная гибель - ведь заражено все. Нельзя брать с собой
ни людей, ни вещей, ни  порядков.  Необходим  строгий  карантин  и  полная
дезинфекция. Зараженных сотрудников надо снабдить хорошими  рекомендациями
и направить в наиболее ненавистные вам учреждения, вещи и дела  немедленно
уничтожить, а здание застраховать и поджечь. Лишь когда все выгорит дотла,
м