Forums: CUDA Mysql/Sha1 Cracker - Forums

Jump to content

  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

CUDA Mysql/Sha1 Cracker

#1 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 28 March 2009 - 12:35 PM



--------------------------------------ARCHIVE UPDATED, SCROLL DOWN FOR DOWNLOAD.------------------------------------------
So, i finally got around writing a CUDA Mysql/sha1/mssql hash cracker.
I'm releasing it here. Its free as in freedom :P You're NOT welcome to use this in any commercial products. Feel free to use this code in any free open source software tho ;)

Network support has been added. Both for ATI and nvidia.
Unit tests have been built in to the executable,as well as benchmarks.
I've added excellent support for large hash lists. Getting 530mhashes/s sha1 on a 4870x2 and sticking there up to 100.000 hashes.
Crash recovery has been added.
Compressed sockets have been added, to reduce server bandwidth needs.
As well as a host of other stuff, and essentially a complete rewrite.

NOTE: ATI CARDS ARE RECOMMENDED TO RUN THIS APPLICATION, THEY OFFER THE BEST PRICE/PERFORMANCE RATIO. (even tho their SDK is utter shite)

Got any bug reports? Feel free to mail me.
Didn't read the readme file? Do not expect a reply any time soon.
Yeah but this is a client server architecture, i can't use this locally!!!11!!!1
Host: 127.0.0.1 Port: yourport.

A note on compiling.
To compile the ATI kernel, you'll need to install my set of compiler hacks, because the ATI brook+ compiler is just plain shitty, and i didn't feel like copying my code 30+ times.


Todo:
-cpu support?
-more algorithms! mail me suggestions!

Links (Cause this board's uploader phails me, cause of it's ub3r 1337 64k connection):

(if any mod would feel so free, attach one of these to the post pl0x)
(Oh, did i mention this includes source code? It's open source after all!)

If it's slow, feel free to mess around with it and recompile it:)

If it doesn't work: try installing nvidia's CUDA and ati's Brook+ (runtimes included now, so it SHOULD work.)


DOWNLOAD LINK: http://qooy.com/file...easecracker.zip


Edit:
Mistakenly included an old version of the local cracker. Those who would have bothered reading the readme should have had no problems. File removed for those who didn't. 


Edit:
V1.1 done,with network support and more!. 


Edit:
Made the ATI kernel compatible with newer versions of the driver. Fixed the NVIDIA kernel (uninitialized variable DATA1). 


Edit:
Uploaded the wrong RAR file, included the wrong ATI kernel. fixed now.


Edit:
 430% increase in speed on NVIDIA, 50% increase on ATI. Pretty much all bugs fixed.


Edit:
 Added a minidump system. For those people that experience crashes, SEND MINIDUMPS.


Edit:
 Damn ATI for adding TLS for no reason in their SDK. It SHOULD REALLY REALLY BE FIXED NOW.


Edit:
Apperantly statically declared TLS caused a lot of bugs on operating systems lower than vista. Got that fixed now.


Edit:
Another bug fixed + nvidia code optimized a bit.


Edit:
Fixed a bug in the NVIDIA kernel, thanks to budden for reporting it. Also note: CUDA HATES UPX!


Edit:
I'd like to shoutout to: budden from the 3.14 forums, and darkwerewolf (my mentor).



Edit:
ATI support added. Project rewritten to modular layout. Code needs some cleaning up and optimisation now. MSSQL support added.



Edit:

Added -minlength and -maxlength commandline parameters.
 
 The commandline parameters are:
 Set the output file : -outfile file.txt
 Set the hash input file: -hashes file.txt
 Set the charset file	: -charset file.txt
 Set the min pass len :-minlength 10
 
 
 And, if the hashes in the file are mysql hashes, specify the commandline option -mysql.
 For mssql, set the commandline option -mssql.
 
 For the format of these files: The hash input file should be in the following format: HASH\r\n, so the file ends with a newline. See the archive for an example.
 
 The charset file should contain no newlines. Only a valid character set.



Edit:
Fixed a bug that would make the program unable to scan the last set of passwords of each block correctly. (Hackish fix, should be cleaned up later).


Edit:
Fixed a bug that would make the program unable to scan beyond 5 character passwords (am i going f'ing blind?).



Edit:
Multi GPU support added. Speed improved by approx 11%. Should work wonders on fast gpu's. Logging added. Send me some stats (mhashes/seconds) and logs!


0

#2 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 29 March 2009 - 03:42 AM

Updated. Whoever is using this, download it again:P
0

#3 User is offline   DiabloHorn 

  • Specialist
  • Group: Specialist
  • Posts: 1,262
  • Joined: 16-September 03

Posted 30 March 2009 - 02:23 AM

that's indeed a lot faster then the one posted @ http://blog.distracted.nl/.

Maybe you could combine? so when cracking a hash it can use cpu and gpu? instead of gpu only?
0

#4 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 30 March 2009 - 03:44 AM

View PostDiabloHorn, on Mar 30 2009, 10:23 AM, said:

that's indeed a lot faster then the one posted @ http://blog.distracted.nl/.

Maybe you could combine? so when cracking a hash it can use cpu and gpu? instead of gpu only?


Thats what i was working on, i'm a little bit short on time atm.

I'll have to get my damn university's coursework finished first, after that i'll try to add, and in this order: cpu support (Intel), GPU support(ATI), Multi GPU support(Nvidia).

Atm i've ordered a second graphics card for my nvidia rig, and i'll be needing an ati card soon.

Once the sha1 part is done i might have time to add p2p features, or md5 cracking.
0

#5 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 30 March 2009 - 03:53 AM

Also, in favor of supporting MYSQL hashes, i will actually add a full length (55 chars) sha1 SSE2 implementation. (mysql hash = sha1(sha1()), so this requires the ability to hash a 20 byte buffer).
0

#6 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 02 April 2009 - 10:40 AM

Progress update: new GPU's arrived today. Nvidia multi gpu support will probably be done tomorrow.
Ati gpu support most likely this weekend, including multi gpu support. After that the p2p architecture will be done. (need hosting! Not hosting this on my home conn.)
After that i'll add CPU support.
0

#7 User is offline   DiabloHorn 

  • Specialist
  • Group: Specialist
  • Posts: 1,262
  • Joined: 16-September 03

Posted 02 April 2009 - 11:24 PM

After looking into this and comparing it to the blog I posted it seems that this isn't as fast as I thought it would be.

Are you going to iimprove current code to be more efficient?
0

#8 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 03 April 2009 - 12:41 AM

Yep, however there are a few performance limits on this.
The hard limit so far, on hashes/second is 80mln on a gforce 8800gts 320. That is given that the passes are <12 characters.
I know i'm hitting a memory limit somewhere, it might be that all the DATA##num structures arent properly cached in registers.
Also, please note that this app compares up to 128 hashes simultaneously. And i'm NOT giving that up in favor of single hash speed. I might write a signle hash benchmarking version to see how high i can go tomorrow, but atm i have _NO_ clue what is limiting performance.
Plus that there's no proper dissasemblers for gpu code, which doesn't really help.

The bottleneck (might) be that the GPU is paging DWORDS for each round in and out of shared memory, from global memory. Shared memory is fast (4 cycles), global is slow(400 cycles). Also: using the approach for the CPU from that blog post on the GPU would kill performance. Why? Using an array: -34% performance (PAGING!), using loops -8% performance (OVERHEAD!).

So, any tools to measure paging in and out of memory on the GPU would be useful. Any links/articles too. But i might just be hitting an instruction limit, and that'd make it a dead end.

As you might be able to read from above post, im just guessing, and cant see to it untill i get home.
0

#9 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 03 April 2009 - 11:17 AM

I might have found a bottleneck, the amounth of threads is not ideal for slow cards, and might not be ideal for fast cards either (designed on an 8800 gts, remember), try dicking around with the threads value till it speeds up.
0

#10 User is offline   nbe 

  • Private
  • Group: Members
  • Posts: 1
  • Joined: 29-March 09

Posted 03 April 2009 - 01:08 PM

hi there, nice work and tnx for sharing code :)
i had a short look at your code... sha1 looks alright, but did i see correctly that you are generating plaintexts constantly using integer divisions? if so, that might actually kill your performance.
0

#11 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 04 April 2009 - 01:01 AM

View Postnbe, on Apr 3 2009, 09:08 PM, said:

hi there, nice work and tnx for sharing code :)
i had a short look at your code... sha1 looks alright, but did i see correctly that you are generating plaintexts constantly using integer divisions? if so, that might actually kill your performance.


Benchmarked that, thats only responsible for killing 7% of my performance. branching if-statements in a loop do worse than this. But thnx for the heads up. I'm going to put a reworked version online today, so i'm busy optimizing it all out of it atm.

As far as i know, this way of generating plaintext uses the least amounth of asm instructions, but i might be wrong, so got ideas for code that suits a similar purpose?:P
0

#12 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 04 April 2009 - 01:03 AM

Also, the problem that DiabloHorn has is most likely with the amounth of threads/the amounth of hashes per thread, or he just has a SLOOOW gpu (remember kids, 8400 cards only have 16 shaders, 8600 too. their 6* slower than a 8800 gts (recommendation: buy an el cheapo second hand 8800 gts instead of them)).

Edit: Compile error, left bracket at line 2 was not matched in post.htm
0

#13 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 04 April 2009 - 09:58 AM

Multi GPU support added for NVIDIA. Updated + optimized. Going to continue on ATI support now.
0

#14 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 25 May 2009 - 01:50 AM

Bump for updated + FIRST CRACKER TO SUPPORT MSSQL AND ATI :)
0

#15 User is offline   vampyr 

  • Private First Class
  • Group: Members
  • Posts: 37
  • Joined: 12-July 08

Posted 25 May 2009 - 03:52 AM

Fixed a bug in the NVIDIA kernel, thanks to budden for reporting it:P
0

Share this topic:


  • (4 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users