02-05-2013, 08:31 PM
Here's some code to illustrate what is happening inside Hashcat:
And when we run it...
Verify it against hashcat...
See?
Code:
#include <stdio.h>
#include <stdint.h>
int main(int argc, char **argv)
{
uint32_t hash[5];
uint32_t bswap_hash[5];
sscanf(argv[1], "%08x%08x%08x%08x%08x", &hash[0], &hash[1], &hash[2], &hash[3], &hash[4]);
int i;
for (i=0; i < 5; i++) bswap_hash[i] = __builtin_bswap32(hash[i]);
printf("%08x%08x%08x%08x%08x\n", bswap_hash[0], bswap_hash[1], bswap_hash[2], bswap_hash[3], bswap_hash[4]);
}
And when we run it...
Code:
epixoip@butters:~$ cc -o bswap bswap.c
epixoip@butters:~$ echo -n 'foobar' | sha1sum
8843d7f92416211de9ebb963ff4ce28125932878 -
epixoip@butters:~$ ./bswap 8843d7f92416211de9ebb963ff4ce28125932878
f9d743881d21162463b9ebe981e24cff78289325
Verify it against hashcat...
Code:
epixoip@butters:~/oclHashcat-lite-0.14$ echo -n 'bar' | xxd -g 0 -ps
626172
epixoip@butters:~/oclHashcat-lite-0.14$ ./oclHashcat-lite64.bin -d 1 -m 110 --hex-salt 8843d7f92416211de9ebb963ff4ce28125932878:626172 ?l?l?l
oclHashcat-lite v0.14 by atom starting...
Password lengths: 1 - 54
Watchdog: Temperature abort trigger set to 90c
Watchdog: Temperature retain trigger set to 80c
Device #1: Tahiti, 2048MB, 925Mhz, 32MCU
Device #2: skipped by user
Device #3: skipped by user
f9d743881d21162463b9ebe981e24cff78289325:626172:foo
Session.Name...: oclHashcat-lite
Status.........: Cracked
Hash.Target....: f9d743881d21162463b9ebe981e24cff78289325:626172
Hash.Type......: sha1($pass.$salt)
See?