Восстановление пароля RAR на графическом процессоре с использованием процессора ATI Stream
-
21-09-2019 - |
Вопрос
Я новичок в программировании графического процессора и работаю над восстановлением пароля RAR методом перебора на потоковом процессоре ATI с использованием языка Brook+, но я вижу, что ядро, написанное на языке Brook+, не позволяет вызывать обычные функции (кроме функций ядра), мои вопросы:
1) как использовать API unrar.dll (для распаковки архивных файлов) в этой ситуации?и это единственный способ запрограммировать восстановление пароля RAR?
2) как насчет трескаться и программное обеспечение ElcomSoft, использующее графический процессор, как они работают?
3) какова именно роль функции работы внутри графического процессора (процессора ATI Stream или CUDA) в этой программе?
4) Является ли технология nVidia/CUDA проще/более гибкой, чем язык ATI/brook+?
Решение
1) unrar.dll — это скомпилированная динамическая библиотека.Они выполняются на процессоре.Графические процессоры имеют совершенно другой машинный код и совершенно другую модель выполнения, поэтому они не могут запускать библиотеки DLL.
Вы можете попытаться реализовать обратный вызов от графического процессора к процессору через события или построить интерпретатор x86 на графическом процессоре, но это почти наверняка будет работать медленнее, чем просто работа на процессоре.
Использование unrar.dll — не единственный способ запрограммировать восстановление пароля RAR.Вместо этого вы можете просто создать свой собственный код для процессора и графического процессора с нуля.
2) Они работают за счет того, что код ЦП явно запрашивает выполнение некоторого кода графического процессора на графическом процессоре.
3) Точно не знаю.Однако я предполагаю, что у него есть программа для графического процессора, которая пробует множество различных комбинаций и получает выгоду от их параллельного запуска.
4) CUDA более зрелая, чем Brook+.Brook+ может быть таким же простым для простых задач, но он не так полнофункционален.Для новых проектов большинство людей теперь предпочитают OpenCL, а не brook+.
(Я не уверен, что вы собираетесь делать, но ничто из вышеперечисленного, похоже, не приведет к чему-то зловещему.)