ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
взлом<br />
ДАМП ПАМЯТИ УЖЕ РАСШИФРОВАННОЙ СБОРКИ<br />
а также шифрования строк. Она так и делает, но анализ кода<br />
от этого не усложняется. Ну да, теперь методы называются<br />
типа a, b… Тот же обработчик мы легко идентифицируем по<br />
определению делегата, а шифрованные строки все равно будут<br />
расшифрованы. Так что, ни хрена это не защита.<br />
Второй метод связан со статическим шифрованием всей сборки.<br />
В бинарник вставляется нативный код, который расшифровывает<br />
сборку при загрузке приложения и защищает ее от<br />
статического анализа. Решений таких — ну просто очень много.<br />
Одно из самых известных — CodeVeil от XHEO. Реально крутая<br />
тулза! Попробуем зашифровать сборку и открыть ее в Reflector.<br />
Оба-на, ошибка: «Module … does not contain CLI header».<br />
Reflector, ILDASM и другие утилы даже не идентифицируют ее<br />
как .NET-сборку. Между прочим, в Professional-версии утила<br />
стоит 1200 зеленых рублей, а лозунг ее — «Don’t just confuse<br />
hackers. Stop them». Впечатляет и вдохновляет!<br />
Ломается такая защита в два счета. Давай подумаем. Если<br />
сборка расшифровывается в памяти перед передачей управления<br />
CLR, значит, нужно просто снять дамп памяти. Загружаем<br />
«защищенную» по самые никуда сборку в память и цепляемся<br />
к ней WinHex’ом (Tools Open Ram; далее выбираем<br />
процесс и модуль в нем). Копируем в файл содержимое памяти:<br />
CTRL+A, затем Edit Copy All Into New File и сохраняем<br />
под именем app14_unveiled.exe. Пытаемся запустить и ловим<br />
ошибку инициализации. Видимо, где-то поползли секции.<br />
Открываем в Reflector и, о чудо, код как на ладони; правда, не<br />
работает Reflexil, вылетая с исключением. Запускаем ILDASM,<br />
XÀÊÅÐ 07 /127/ 09<br />
делаем дамп IL и компилируем… — получаем новую полностью<br />
работоспособную сборку со снятой защитой. Во как!<br />
Справедливости ради стоит отметить, что в текущей версии<br />
CodeVeil 3.2, по заявлению разработчиков, реализована динамическая<br />
защита во время исполнения, что сильно затрудняет<br />
задачу. Необходимо детально исследовать нативный код<br />
шифровщика. Мне кажется, что создание unpacker’а — лишь<br />
вопрос времени. Пока никто эту задачу не решил, так что<br />
дерзай, возможно, получится у тебя.<br />
Таким образом, программисту приходится полагаться только<br />
на самого себя. Можно шифровать сборки, динамически<br />
расшифровывать их во время исполнения и подгружать с<br />
помощью Application.Load. В общем, все как в старом добром<br />
Assembler’е. А можно воспользоваться виртуальными контейнерами<br />
типа ThinApp или Xenocode. Ну а лучше всего и вовсе<br />
реализовывать критические участки с помощью неуправляемого<br />
кода.<br />
ИЗ РОССИИ С ЛЮБОВЬЮ<br />
Помни, что только практика способствует твоему развитию. Как<br />
видишь, все не так уж сложно, но, заходя на сайт глобального<br />
рейтинга www.wechall.net, я с грустью обнаруживаю Россию на<br />
25-м месте. В рейтинге зарегистрировано всего 5 российских<br />
хакеров-участников! Давай поддержим нашу страну: регистрируйся<br />
на сайтах-челленджах и бросай баллы в копилку Родины.<br />
Все описанные действия совершены под музыку Джо Кокера.<br />
Слушай блюз и будь счастлив!z<br />
DVD<br />
dvd<br />
На диске ты найдешь<br />
все упомянутые в<br />
статье тулзы, официальное<br />
описание CIL<br />
от Microsoft, а также<br />
препарируемый<br />
CrackMe и его пропатченную<br />
версию.<br />
059