03.01.2015 Views

Офисное западло - Xakep Online

Офисное западло - Xakep Online

Офисное западло - Xakep Online

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

взлом<br />

Файловый репрозиторий на OpenRCE<br />

Сообщение о неудачной инициализации динамической библиотеки,<br />

ведущей к завершению процесса<br />

>> Targets<br />

MS VS, WinDbg, OllyDbg, ImmDbg, Syser, SoftICE, IDA-Pro и многие<br />

другие.<br />

>> Exploit<br />

Демонстрационный пример (вместе с полными исходными текстами,<br />

правда, без комментариев) выложен на OpenRCE в мой репрозиторий:<br />

https:// openrce.org/repositories/users/nezumi/quux-crackme.<br />

zip. Пример занимает в упакованном виде меньше 2х килобайт, совместим<br />

с Вистой/Server 2008 и не конфликтует с Syser’ом (в смысле<br />

не «выбивает» из него BSOD, но ускользает из-под вышеперечисленных<br />

отладчиков).<br />

>> Solution<br />

Отсутствует. Ну, не то, чтобы совсем, — но общих решений нет, и помимо<br />

DllMain существует много всего, исполняющегося до «всплытия»<br />

отладчика. Взять хотя бы те же TLS-callback’и. А потому загрузка<br />

программы в отладчик — равносильна ее запуску, и потенциально<br />

опасные файлы можно использовать только на специальной (виртуальной)<br />

машине, на которой нет ничего, что было бы жалко потерять.<br />

Кстати, в Olly Advanced — популярном plug-in’е для Ольги — есть<br />

опция «Flexible Breakpoints», убирающая программную<br />

точку останова, что предотвращает обнаружение отладчика, но не в<br />

силах противостоять подмене стартового адреса первичного потока.<br />

Аналогичным образом дела обстоят и с другим популярным plugin’ом<br />

— PhantOm, имеющим опцию «Remove EP Break», назначение<br />

которой говорит само за себя.<br />

Разумеется, это никакой не crackme (в обычном смысле), а настоящий<br />

exploit типа proof-of-concept, предназначенный для тестирования<br />

отладчиков на «вшивость» и написанный так, чтобы предельно<br />

облегчить его понимание, благодаря чему сломать его — плевое<br />

дело. Но если наворотить здесь хитрый код, то шансы на понимание<br />

резко снизятся, а шансы на «взлом» отладчика, соответственно,<br />

резко возрастут. Борьба с отладчиками на данном этапе не входила в<br />

мою задачу — этому посвящена отдельная колонка в журнале, а здесь<br />

мы говорим исключительно о дырах (прорыв сквозь отладчик — в<br />

первую очередь дефект проектирования отладчика, то есть дыра, и<br />

только потом — антиотладочный прием).z<br />

xàêåð 06 /114/ 08<br />

045

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!