Monday, June 8, 2009

Psebr-md5, the PlayStation 3 (MD5) password brute forcer

So I finally got to cleaning up my mess and release the code! I don't feel like writing much text right now, so I hope to produce some explanations about PS3 coding in the future (could be in one day, could be in a few weeks ;)).

At least to share some links I came across while developing:

* Black Hat presentation slides by Nick Breese
* MD5 code by Nick Breese
* Someone improving part of Nick Breese's code
* G924789's improvements for MD5 ROUND1 and ROUND2
* Some examples on communication between PPU and SPU's
* Someone who implemented AES on PS3
* IBM documentation on Cell
* C/C++ Language Extensions for Cell/B.E. Architecture (somehow IBM killed the link at the moment)

You can get the source code, including binaries, here!

Feel free to comment, improve, share!

Sunday, June 7, 2009

Psebr is almost done!

My work on Psebr-md5 is almost done. I'm currently cleaning up some code and adding some (hopefully useful) comments.

Speed is now close to 300 Mhashes/s, usually around 290 Mhashes/s average. This speed is composed of 6 SPU's going at like 43 Mhashes/ and the PPU going at 2x 16 Mhashes/s. Somehow just running 1 PPU thread has a faster speed/thread, something like 20 Mhashes/s.

Some keywords when coding for PS3:

* Vectors / SIMD
* Branching (__builtin_expect)
* Interlacing / pipeline 0 and 1
* Finding/using the right intrinsics/instructions
* Big Endian

I'll try and write about these when I release my code :) (I hope in one or two days!)