views:

631

answers:

1

Hello, 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 ?

+1  A: 

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.)

RD1