Журнал Системный Администратор, Сентябрь 2006

Журнал Системный Администратор

Сентябрь 2006

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Упаковщики исполняемых файлов в Linux/BSD

Крис Касперски

Большинство UNIX-программ распространяются в исходных текстах, но количество коммерческих продуктов с закрытым кодом неуклонно растет. Зачастую они распространяются в упакованном виде, что не только препятствует анализу, но снижает производительность и ухудшает совместимость с UNIX-клонами. Покажем на примере ELFCrypt, UPX, Burneye и Shiva, как можно освободиться от упаковщиков.

В Windows упаковщики исполняемых файлов получили очень большое распространение и сформировали обширную рыночную нишу, переваривающую огромные деньги, питающие целые фирмы и привлекающие высококвалифицированных специалистов, создающих нехилые защитные механизмы, борьба с которыми требует консолидации всего хакерского сообщества.

Под UNIX ситуация обстоит приблизительно так: потребность в упаковщиках уже есть (и многие коммерческие фирмы хотели бы выпустить закрытые порты своих продуктов под UNIX, основательно их защитив), но рынок протекторов еще не успел сформироваться, а потому разработкой упаковщиков занимается от силы десяток энтузиастов, повторяющих трюки времен ранней молодости MS-DOS, и только Shiva попытался предпринять качественный рывок вперед, вплотную приблизившись к протектору Software Passport (бывший Armadillo), однако, это его и погубило. На всех Linux/BSD-системах, до которых я только смог дотянуться, Shiva падает с сообщением «Segmentation fault». Какое же это счастье Windows-программистам иметь одну, ну пусть две (с учетом 9x) ОС, практически полностью совместимые между собой даже на уровне недокументированных возможностей!

Создание надежной защиты, запускающейся более чем на одной версии Linux, – практически безнадежное дело, а если вспомнить про BSD и экспериментальные ядра типа Hurd, то к программированию можно даже не приступать. В то же время, слабость защитных механизмов компенсируется отсутствием достойного хакерского инструментария, поэтому даже простейшая защита представляет собой большую проблему, превращая распаковку программ в довольно нетривиальную задачу! Но мы ее решим! Начиная с самых простых упаковщиков и приобретая в сражении тактические навыки и необходимый инструментарий, в конечном счете, мы сможем сразиться с кем угодно!

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке