Восстановление пароля RAR на GPU с использованием процессора ATI Stream - PullRequest
5 голосов
/ 26 декабря 2009

Я новичок в программировании на GPU, и я работаю над полным восстановлением паролей RAR на потоковом процессоре ATI, используя язык brook +, но я вижу, что ядро, написанное на языке brook +, не допускает никаких вызовов обычных функций (кроме ядра функции), мои вопросы:

1) как использовать unrar.dll (для разархивирования архивных файлов) API в этой ситуации? и это единственный способ запрограммировать восстановление пароля RAR?

2) как насчет крэка и программного обеспечения ElcomSoft, использующего графический процессор, как они работают?

3) Какую роль функции играют внутри GPU (процессор ATI Stream или CUDA) в этой программе?

4) технология nVidia / CUDA проще / более гибкая, чем ATI / brook + language?

1 Ответ

2 голосов
/ 18 июня 2010

1) unrar.dll - это скомпилированная библиотека динамических ссылок. Они выполняются на процессоре. Графические процессоры имеют совершенно другой машинный код и совершенно другую модель исполнения, поэтому они не могут запускать библиотеки DLL.

Вы можете попытаться реализовать обратный вызов из GPU в CPU через события или создать интерпретатор x86 на GPU, но они почти наверняка будут работать медленнее, чем просто на CPU.

Использование unrar.dll - не единственный способ запрограммировать восстановление пароля RAR. Вместо этого вы можете просто создать собственный код для процессора и графического процессора с нуля.

2) Они работают так, что код процессора явно запрашивает, чтобы какой-нибудь код графического процессора выполнялся на графическом процессоре.

3) Я точно не знаю. Я бы предположил, однако, что у него есть программа GPU, которая пробует много разных комбинаций, и выигрывает от того, что они запускаются параллельно.

4) CUDA более зрелый, чем ручей. brook + может быть таким же простым для простых задач, но не настолько полнофункциональным. Для новых проектов большинство людей теперь выбрали бы OpenCL вместо Brook +.

(Я не уверен, что вы собираетесь делать, но ни один из вышеперечисленных, вероятно, не даст ничего зловещего.)

...