使用 ATI 流处理器在 GPU 上恢复 RAR 密码
我是 GPU 编程新手,我使用 brook+ 语言在 ATI 流处理器上进行暴力破解 RAR 密码恢复,但我发现用 brook+ 语言编写的内核不允许调用任何普通函数(内核函数除外),我的问题是:
1)在这种情况下如何使用 unrar.dll (解压缩存档文件)API?这是 RAR 密码恢复程序的唯一方法吗?
2)使用GPU的破解和ElcomSoft软件怎么样,它们是如何工作的?
3)该程序中GPU(ATI流处理器或CUDA)内部的函数到底起什么作用?
4) nVidia/CUDA 技术比 ATI/brook+ 语言更容易/更灵活吗?
I'm newbie in GPU programming , and i work on brute force RAR Password Recovery on ATI Stream Processor using brook+ language, but i see that the kernel written in brook+ language doesn't allow any calling to normal functions (except kernel functions) , my questions is :
1) how to use unrar.dll (to unrar archive files) API in this situation? and is this the only way to program RAR password recovery?
2) what about crack and ElcomSoft software that use GPU , how they work ?
3) what exactly the role for the function work inside GPU (ATI Stream processor or CUDA) in this program?
4) is nVidia/CUDA technology is easier/more flexible than ATI/brook+ language ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1)unrar.dll是编译好的动态链接库。这些在 CPU 上执行。 GPU 具有截然不同的机器代码和截然不同的执行模型,因此它们无法运行 dll。
您可以尝试通过事件实现从 GPU 到 CPU 的回调,或者在 GPU 上构建 x86 解释器,但这些几乎肯定会比仅在 CPU 上运行慢。
使用 unrar.dll 并不是对 RAR 密码恢复进行编程的唯一方法。您可以从头开始构建自己的 CPU 和 GPU 代码。
2) 它们的工作原理是让 CPU 代码显式请求某些 GPU 代码在 GPU 上运行。
3)我不太清楚。我猜测它有一个 GPU 程序,可以尝试许多不同的组合,并从并行运行中受益。
4)CUDA比brook+更成熟。 brook+ 对于简单的任务来说可能同样容易,但功能不那么齐全。对于新项目,大多数人现在会选择 OpenCL 而不是 brook+。
(我不确定你打算做什么,但以上似乎都不会导致任何险恶的事情。)
1) unrar.dll is a compiled dynamic link library. These execute on the CPU. GPUs have vastly different machine code and a very different execution model, so they can't run dlls.
You could try to implement a callback from the GPU to the CPU via events, or build an x86 interpreter on the GPU, but these would almost certainly run slower than just running on the CPU.
Using unrar.dll is not the only way to program RAR password recovery. You could instead just build your own code for CPU and GPU from scratch.
2) They work by having the CPU code explicitly request that some GPU code run on the GPU.
3) I don't know exactly. I would guess though that it has a GPU program that tries many different combinations, and benefits from having these run in parallel.
4) CUDA is more mature than brook+. brook+ may be just as easy for simple tasks, but isn't as fully featured. For new projects most people would now choose OpenCL over brook+.
(I'm not sure what you're intending to do, but none of the above seems likely to enable anything sinister.)