27.11.2014 Views

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

pc_zone<br />

MAIN<br />

MEMORY<br />

GPU<br />

1<br />

COPY<br />

PROCESSING DATA<br />

INSTRUCT THE PROCESSING<br />

2<br />

MEMORY<br />

FOR GPU<br />

COPY THE RESULT<br />

4<br />

GPU<br />

(GEFORCE 8800)<br />

3<br />

EXECUTE PARALLEL<br />

IN EACH CORE<br />

СХЕМА ВЗАИМОДЕЙСТВИЯ МЕЖДУ CPU И GPU. (1) КОПИРУЕМ ДАННЫЕ ИЗ ОСНОВНОЙ ПАМЯТИ В ПА-<br />

МЯТЬ ВИДЕОКАРТЫ. (2) ПЕРЕДАЕМ УПРАВЛЕНИЕ GPU. (3) GPU ВЫПОЛНЯЕТ КОМАНДУ ПАРАЛЛЕЛЬНО<br />

В КАЖДОМ ЯДРЕ. (4) КОПИРУЕМ РЕЗУЛЬТАТ ИЗ ПАМЯТИ ВИДЕОКАРТЫ В ОСНОВНУЮ ПАМЯТЬ<br />

требуется выполнять одни и те же действия<br />

над огромными массивами данных (пример:<br />

локальный брутфорс чего-либо).<br />

УСТАНОВКА <strong>CUDA</strong><br />

В СИСТЕМУ<br />

До недавнего времени GPU могли программироваться<br />

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

графических API. Отсюда вытекали<br />

и недостатки в лице длительного времени,<br />

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

также накладных расходов, возникающих за<br />

счет использования промежуточного звена.<br />

<strong>CUDA</strong> представляется для программиста в<br />

виде расширения для привычных языков<br />

программирования, а поэтому изучить его<br />

намного проще. Вообще, все что нужно,<br />

для того чтобы начать использовать <strong>CUDA</strong><br />

— обзавестись соответствующим SDK и<br />

скачать с официального сайта NVIDIA драйвер<br />

<strong>CUDA</strong>, который связывается с DirectX,<br />

OpenGL и С-компилятором для GPU.<br />

Разработчику дополнительно потребуется<br />

установить специальную среду разработки<br />

<strong>CUDA</strong> Toolkit. Не составит труда установить<br />

<strong>CUDA</strong> и на Linux, например на самом официальном<br />

сайте есть подробные инструкции<br />

по установке <strong>CUDA</strong> на Ubuntu.<br />

В систему устанавливается все необходимое<br />

для работы с <strong>CUDA</strong>, включая runtime<br />

и компилятор nvcc. Причем сам компилятор<br />

фактически представляет собой препроцессор,<br />

обрабатывающий исходник и<br />

строящий отдельный код для GPU и CPU.<br />

XÀÊÅÐ 07 /127/ 09<br />

Для компиляции кода для CPU (включая<br />

код, необходимый для запуска ядра) nvcc<br />

использует обычный C/C++ компилятор (на<br />

Linux’е он использует gcc). Теперь давай,<br />

наконец, посмотрим, где сейчас можно оценить<br />

эффект от внедрения вычислений на<br />

видеоадаптерах. Главное, помни два важных<br />

требования для использования <strong>CUDA</strong>:<br />

1) Наличие видеоадаптера GeForce 8-й<br />

серии и старше (подробнее во врезке);<br />

2) 512 Мб видеопамяти на борту.<br />

ТРИК 1: РАСПРАВЛЯЕМСЯ<br />

С MD5<br />

Первое и самое простое из того, что можно<br />

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

<strong>CUDA</strong>, — попробовать пробрутить<br />

какой-нибудь хеш и сравнить результаты<br />

с теми, что дают утилиты из нашего<br />

брутфорс-набора (читай статью «Лучшие<br />

инструменты пентестера»). Одна из таких<br />

утилит — BarsWF (http://3.14.by/ru/md5),<br />

разработкой которой занимается Михаил<br />

Сварчевский. На текущий момент разработчиком<br />

достигнута скорость перебора,<br />

равная 350 миллионам ключей в секунду.<br />

Синтаксис для запуска следующий:<br />

BarsWF_SSE2_x64.exe -h<br />

21685d282d79098b89bdf5 a916b66c90<br />

-X «030405313233» -min_len 12<br />

Ключ «-X» добавляет дополнительные значения<br />

для перебора, «-min_len» обозначает<br />

минимальную длину пароля (она должна<br />

быть не более 15). Перед запуском не<br />

поленись скачать самый последний драйвер<br />

с поддержкой <strong>CUDA</strong> (www.nvidia.com/<br />

object/cuda_get.html) или AMD/Brook, если<br />

используешь видюху на базе AMD (ati.amd.<br />

com/support/driver.html).<br />

Для взлома хешей с использованием <strong>CUDA</strong><br />

есть и другие проекты: Vernoux Md5 crack<br />

(bvernoux.free.fr/md5/index.php), Lightning<br />

Hash Cracker (www.elcomsoft.com/lhc.<br />

html), cuMD5 (forums.nvidia.com/index.<br />

php?showtopic=71548), nVCuda_md5 (forum.<br />

antichat.ru/thread62728.html), InsidePro EGB<br />

(www.insidepro.com/eng/egb.shtml).<br />

ТРИК 2: БРУТИМ СЛОЖНЫЕ<br />

ХЕШИ<br />

Хорошо, с MD5 разобрались. А как быть с<br />

другими хешами? Тут тебе в помощь — специальная<br />

версия Rainbowcrack (projectrainbowcrack.com),<br />

заточенная под <strong>CUDA</strong>.<br />

Программа не только оптимизирована для<br />

работы на многопроцессорных системах, но<br />

еще и эффективно использует возможности<br />

современных GPU.<br />

Только вдумайся в цифры: для NTLM-хеша<br />

скорость перебора, используя мощности<br />

графического процессора, составляет<br />

500 миллионов паролей в секунду. А если<br />

вместо брутфорса использовать rainbowтаблицы,<br />

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

цифру: почти 73904 миллионов паролей<br />

в секунду!<br />

029

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

Saved successfully!

Ooh no, something went wrong!