ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
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