Skip to content

Instantly share code, notes, and snippets.

@Slashmolder
Last active August 29, 2015 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Slashmolder/627848ac893a2d1cf6d0 to your computer and use it in GitHub Desktop.
Save Slashmolder/627848ac893a2d1cf6d0 to your computer and use it in GitHub Desktop.
aj@kumo:~/code$ make rumble
cc rumble.c -o rumble
aj@kumo:~/code$ time ./rumble
Match 25 00633377
Match 110 01346893
Match 90 02706401
Match 83 03339202
Match 122 03570018
Match 4 04730723
Match 101 05049128
Match 0 07475726
Match 65 07646766
Match 128 07817569
Match 13 08804218
Match 7 08812138
Match 61 09383536
Match 48 12659548
Match 126 14101855
Match 96 14854526
Match 115 15475553
Match 100 15681339
Match 43 16607716
Match 88 16638918
Match 56 17428954
Match 40 18014401
Match 1 18294319
Match 10 18689737
Match 80 18985769
Match 99 19419460
Match 3 20975060
Match 79 21470161
Match 77 23871470
Match 2 24197410
Match 63 24541815
Match 72 24771725
Match 112 25576005
Match 109 25637504
Match 104 25826431
Match 20 26665300
Match 55 27418406
Match 31 28563187
Match 66 30417493
Match 69 30743419
Match 98 31587215
Match 26 31757866
Match 59 32542580
Match 64 33704576
Match 41 35325215
Match 76 36984523
Match 53 37760163
Match 120 37784502
Match 9 38220972
Match 107 38676454
Match 58 40442690
Match 5 40909306
Match 42 41169311
Match 11 41749930
Match 95 43522297
Match 92 43777681
Match 82 44599989
Match 73 45177014
Match 15 45439916
Match 85 45484632
Match 74 46657585
Match 105 46715059
Match 27 47219375
Match 118 48894913
Match 29 50675021
Match 30 51803567
Match 127 52253751
Match 44 52378511
Match 6 52830979
Match 116 53536680
Match 119 54827636
Match 49 56770827
Match 33 58143160
Match 45 58410198
Match 34 59190563
Match 91 61211248
Match 21 61709425
Match 8 62465323
Match 62 62660674
Match 60 62965164
Match 103 64297438
Match 97 64981939
Match 111 65370104
Match 87 67097747
Match 68 67997111
Match 102 68482513
Match 123 68938734
Match 78 70025653
Match 37 70095874
Match 17 70403360
Match 28 70913926
Match 23 70959041
Match 16 71001385
Match 84 73294979
Match 51 73631464
Match 86 75842984
Match 47 77394523
Match 19 78515422
Match 36 78809335
Match 35 79075980
Match 125 79159356
Match 108 79262839
Match 70 79674426
Match 46 80458867
Match 113 80501954
Match 12 80837953
Match 75 82934904
Match 124 83660710
Match 71 87337896
Match 14 87456259
Match 106 87924051
Match 50 88236729
Match 22 88252527
Match 121 88542610
Match 18 89548655
Match 24 91336986
Match 38 92293728
Match 52 92955036
Match 81 94681135
Match 32 95359778
Match 57 95368835
Match 114 96380090
Match 93 96465637
Match 94 97096330
Match 117 97881775
Match 54 98114402
Match 67 98361402
Match 89 98920358
Match 39 99271867
real 1m56.147s
user 1m56.108s
sys 0m0.004s
/*
* SHA-1 hash in C
*
* Copyright (c) 2014 Project Nayuki
* http://www.nayuki.io/page/fast-sha1-hash-implementation-in-x86-assembly
*
* (MIT License)
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
* - The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* - The Software is provided "as is", without warranty of any kind, express or
* implied, including but not limited to the warranties of merchantability,
* fitness for a particular purpose and noninfringement. In no event shall the
* authors or copyright holders be liable for any claim, damages or other
* liability, whether in an action of contract, tort or otherwise, arising from,
* out of or in connection with the Software or the use or other dealings in the
* Software.
*/
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <byteswap.h>
void sha1_compress(uint32_t state[5], const uint8_t block[64]) {
#define SCHEDULE(i) \
temp = schedule[(i - 3) & 0xF] ^ schedule[(i - 8) & 0xF] ^ schedule[(i - 14) & 0xF] ^ schedule[(i - 16) & 0xF]; \
schedule[i & 0xF] = temp << 1 | temp >> 31;
#define LOADSCHEDULE(i) \
schedule[i] = \
(uint32_t)block[i * 4 + 0] << 24 \
| (uint32_t)block[i * 4 + 1] << 16 \
| (uint32_t)block[i * 4 + 2] << 8 \
| (uint32_t)block[i * 4 + 3];
#define ROUND0a(a, b, c, d, e, i) LOADSCHEDULE(i) ROUNDTAIL(a, b, e, ((b & c) | (~b & d)) , i, 0x5A827999)
#define ROUND0b(a, b, c, d, e, i) SCHEDULE(i) ROUNDTAIL(a, b, e, ((b & c) | (~b & d)) , i, 0x5A827999)
#define ROUND1(a, b, c, d, e, i) SCHEDULE(i) ROUNDTAIL(a, b, e, (b ^ c ^ d) , i, 0x6ED9EBA1)
#define ROUND2(a, b, c, d, e, i) SCHEDULE(i) ROUNDTAIL(a, b, e, ((b & c) ^ (b & d) ^ (c & d)), i, 0x8F1BBCDC)
#define ROUND3(a, b, c, d, e, i) SCHEDULE(i) ROUNDTAIL(a, b, e, (b ^ c ^ d) , i, 0xCA62C1D6)
#define ROUNDTAIL(a, b, e, f, i, k) \
e += (a << 5 | a >> 27) + f + UINT32_C(k) + schedule[i & 0xF]; \
b = b << 30 | b >> 2;
uint32_t a = state[0];
uint32_t b = state[1];
uint32_t c = state[2];
uint32_t d = state[3];
uint32_t e = state[4];
uint32_t schedule[16];
uint32_t temp;
ROUND0a(a, b, c, d, e, 0)
ROUND0a(e, a, b, c, d, 1)
ROUND0a(d, e, a, b, c, 2)
ROUND0a(c, d, e, a, b, 3)
ROUND0a(b, c, d, e, a, 4)
ROUND0a(a, b, c, d, e, 5)
ROUND0a(e, a, b, c, d, 6)
ROUND0a(d, e, a, b, c, 7)
ROUND0a(c, d, e, a, b, 8)
ROUND0a(b, c, d, e, a, 9)
ROUND0a(a, b, c, d, e, 10)
ROUND0a(e, a, b, c, d, 11)
ROUND0a(d, e, a, b, c, 12)
ROUND0a(c, d, e, a, b, 13)
ROUND0a(b, c, d, e, a, 14)
ROUND0a(a, b, c, d, e, 15)
ROUND0b(e, a, b, c, d, 16)
ROUND0b(d, e, a, b, c, 17)
ROUND0b(c, d, e, a, b, 18)
ROUND0b(b, c, d, e, a, 19)
ROUND1(a, b, c, d, e, 20)
ROUND1(e, a, b, c, d, 21)
ROUND1(d, e, a, b, c, 22)
ROUND1(c, d, e, a, b, 23)
ROUND1(b, c, d, e, a, 24)
ROUND1(a, b, c, d, e, 25)
ROUND1(e, a, b, c, d, 26)
ROUND1(d, e, a, b, c, 27)
ROUND1(c, d, e, a, b, 28)
ROUND1(b, c, d, e, a, 29)
ROUND1(a, b, c, d, e, 30)
ROUND1(e, a, b, c, d, 31)
ROUND1(d, e, a, b, c, 32)
ROUND1(c, d, e, a, b, 33)
ROUND1(b, c, d, e, a, 34)
ROUND1(a, b, c, d, e, 35)
ROUND1(e, a, b, c, d, 36)
ROUND1(d, e, a, b, c, 37)
ROUND1(c, d, e, a, b, 38)
ROUND1(b, c, d, e, a, 39)
ROUND2(a, b, c, d, e, 40)
ROUND2(e, a, b, c, d, 41)
ROUND2(d, e, a, b, c, 42)
ROUND2(c, d, e, a, b, 43)
ROUND2(b, c, d, e, a, 44)
ROUND2(a, b, c, d, e, 45)
ROUND2(e, a, b, c, d, 46)
ROUND2(d, e, a, b, c, 47)
ROUND2(c, d, e, a, b, 48)
ROUND2(b, c, d, e, a, 49)
ROUND2(a, b, c, d, e, 50)
ROUND2(e, a, b, c, d, 51)
ROUND2(d, e, a, b, c, 52)
ROUND2(c, d, e, a, b, 53)
ROUND2(b, c, d, e, a, 54)
ROUND2(a, b, c, d, e, 55)
ROUND2(e, a, b, c, d, 56)
ROUND2(d, e, a, b, c, 57)
ROUND2(c, d, e, a, b, 58)
ROUND2(b, c, d, e, a, 59)
ROUND3(a, b, c, d, e, 60)
ROUND3(e, a, b, c, d, 61)
ROUND3(d, e, a, b, c, 62)
ROUND3(c, d, e, a, b, 63)
ROUND3(b, c, d, e, a, 64)
ROUND3(a, b, c, d, e, 65)
ROUND3(e, a, b, c, d, 66)
ROUND3(d, e, a, b, c, 67)
ROUND3(c, d, e, a, b, 68)
ROUND3(b, c, d, e, a, 69)
ROUND3(a, b, c, d, e, 70)
ROUND3(e, a, b, c, d, 71)
ROUND3(d, e, a, b, c, 72)
ROUND3(c, d, e, a, b, 73)
ROUND3(b, c, d, e, a, 74)
ROUND3(a, b, c, d, e, 75)
ROUND3(e, a, b, c, d, 76)
ROUND3(d, e, a, b, c, 77)
ROUND3(c, d, e, a, b, 78)
ROUND3(b, c, d, e, a, 79)
state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;
state[4] += e;
}
// Generated by BreakPoint Software's Hex Workshop v6.8.0.5419
// http://www.hexworkshop.com
// http://www.bpsoft.com
//
// Source File: D:\Desktop\rumble\rom\table\PasswordDesc.bin
// Time: 4/17/2015 10:49 PM
// Orig. Offset: 1908 / 0x00000774
// Length: 2193 / 0x00000891 (bytes)
unsigned char rawData[2193] =
{
0xC1, 0x2B, 0x87, 0xA0, 0xE7, 0x54, 0x7C, 0x3C, 0x67, 0x0E, 0x6A, 0x56, 0x26, 0x84, 0x75, 0x29,
0x00, 0xA6, 0x13, 0xE7, 0x1E, 0xDF, 0x6B, 0x4D, 0xA8, 0x3D, 0x52, 0x86, 0x2C, 0xC5, 0xCB, 0xD2,
0xCB, 0x00, 0x08, 0xE6, 0x07, 0x5C, 0x3F, 0xE4, 0x9C, 0xE4, 0x1C, 0x76, 0xDB, 0xFB, 0xAB, 0x3A,
0x2C, 0x53, 0x00, 0x9B, 0x23, 0x8E, 0x8A, 0x6D, 0x40, 0x44, 0x52, 0xA1, 0x53, 0xE6, 0xE0, 0x0A,
0xED, 0xB4, 0x63, 0x00, 0x22, 0xD8, 0x2E, 0x0D, 0x72, 0x74, 0xF6, 0x82, 0x70, 0xF3, 0x55, 0xA6,
0x74, 0x1D, 0xD9, 0xB5, 0x00, 0xF2, 0xB8, 0xF0, 0xA2, 0x72, 0xD4, 0xF2, 0x6A, 0xC4, 0xDB, 0x74,
0x5F, 0xC3, 0xA1, 0x1C, 0xE4, 0x00, 0xE9, 0x33, 0xAE, 0x2F, 0x24, 0x33, 0xF7, 0xC0, 0xAC, 0xA5,
0xC3, 0xD9, 0x3F, 0x7F, 0xB4, 0x4C, 0x00, 0xB9, 0x4D, 0x9B, 0x82, 0xF3, 0xDE, 0x0F, 0x9C, 0x01,
0xC5, 0x44, 0xAB, 0xC2, 0x61, 0x76, 0x18, 0x00, 0x13, 0xB6, 0x40, 0xD6, 0xC7, 0x76, 0x87, 0x4C,
0xC5, 0x91, 0x3C, 0x36, 0xD3, 0xB6, 0xCF, 0x66, 0x00, 0xA0, 0xAB, 0xA0, 0xD6, 0x47, 0xA7, 0xF8,
0xC3, 0x8F, 0xFB, 0x4D, 0x21, 0x69, 0x44, 0xAD, 0xBE, 0x00, 0x6F, 0xB6, 0xD2, 0xED, 0x54, 0xE8,
0x66, 0x4E, 0x68, 0xFA, 0x31, 0x8F, 0x04, 0x74, 0x92, 0x83, 0x00, 0xF2, 0xC3, 0x61, 0x21, 0x6B,
0xB8, 0x00, 0x56, 0xCE, 0xD3, 0x7D, 0xEC, 0xEA, 0x74, 0xD2, 0xC6, 0x00, 0xD6, 0xE0, 0xCF, 0xE5,
0x4B, 0xD6, 0xE5, 0x58, 0xB3, 0x79, 0x2F, 0xFD, 0x94, 0x30, 0x43, 0xC8, 0x00, 0x05, 0x7C, 0xE6,
0x91, 0xF4, 0x7C, 0x2A, 0x5A, 0x13, 0x92, 0x64, 0xAF, 0x39, 0x0C, 0x05, 0xEA, 0x00, 0x40, 0x4B,
0x2B, 0x00, 0xCB, 0x8D, 0x88, 0x08, 0xEB, 0x22, 0x07, 0x03, 0x45, 0x2E, 0xEE, 0xAA, 0x00, 0x14,
0x4C, 0xE0, 0x60, 0xCB, 0x24, 0x38, 0xBB, 0x4D, 0x99, 0xFB, 0xE2, 0x3A, 0xA0, 0x93, 0x24, 0x00,
0x1C, 0x64, 0xE7, 0x1C, 0xEE, 0x8D, 0xE7, 0x41, 0x68, 0xD9, 0x37, 0x4B, 0xCE, 0x7F, 0x9B, 0xFF,
0x00, 0x03, 0xF9, 0x7E, 0xCE, 0xCD, 0x77, 0x06, 0x28, 0x65, 0xD2, 0x95, 0x82, 0x7B, 0x50, 0xFC,
0x3F, 0x00, 0xBF, 0x6C, 0xA4, 0x6F, 0x7F, 0x19, 0x77, 0x7B, 0xF7, 0x01, 0xC5, 0x7B, 0x8D, 0x98,
0x2F, 0x50, 0x00, 0xEF, 0x69, 0x65, 0x7B, 0xAB, 0x82, 0x6B, 0x0A, 0x19, 0x84, 0x79, 0xDF, 0x03,
0x7A, 0x7B, 0x95, 0x00, 0xE9, 0xFA, 0x78, 0xFC, 0x03, 0xA4, 0x8A, 0x74, 0x56, 0x84, 0x5B, 0x96,
0x2E, 0x35, 0x3A, 0xCC, 0x00, 0x82, 0xBA, 0x4A, 0x4D, 0xA2, 0x06, 0xB3, 0xB6, 0xD1, 0x4A, 0x47,
0x19, 0x65, 0xB7, 0xBD, 0xFB, 0x00, 0xA1, 0xFD, 0x8E, 0x87, 0xF3, 0x95, 0xFC, 0xF4, 0xAC, 0x87,
0x9A, 0x5E, 0x88, 0xF5, 0xF5, 0x13, 0x00, 0x9F, 0x0E, 0x80, 0xB3, 0xCC, 0x9C, 0xBB, 0xC5, 0x8C,
0xE5, 0x76, 0xE0, 0xC0, 0x9E, 0x4E, 0x56, 0x00, 0xF6, 0x31, 0xEB, 0x99, 0xBC, 0x86, 0xC5, 0x47,
0x0B, 0xF9, 0x8D, 0xDB, 0xA0, 0x77, 0x39, 0x60, 0x00, 0x8B, 0xAA, 0x0C, 0x63, 0xFF, 0xF8, 0xB3,
0xEE, 0xD6, 0xB8, 0x28, 0x0E, 0xE2, 0xBE, 0x0E, 0xBF, 0x00, 0x91, 0xE6, 0x44, 0x30, 0xC2, 0x8B,
0xD0, 0x6A, 0xEB, 0x1B, 0xAA, 0xCE, 0xA8, 0x59, 0xB9, 0x47, 0x00, 0x1A, 0x23, 0xB3, 0x4C, 0x12,
0xC8, 0x99, 0x46, 0xE7, 0xF7, 0x07, 0x8F, 0xAC, 0x66, 0x19, 0x6B, 0x00, 0x7D, 0xFB, 0x21, 0xCE,
0xFD, 0xCB, 0xCE, 0xEE, 0xA0, 0xB2, 0xD8, 0x66, 0x04, 0x6F, 0x9F, 0xBF, 0x00, 0x96, 0x5A, 0x9B,
0x46, 0x9C, 0xF6, 0x18, 0x88, 0xFC, 0xAC, 0xA1, 0xC5, 0xEA, 0x9A, 0xE2, 0xE0, 0x00, 0x40, 0xD5,
0x6A, 0x22, 0xE7, 0x4C, 0x76, 0x6F, 0xAD, 0x3C, 0x2E, 0x40, 0xD8, 0x0F, 0x1F, 0x23, 0x00, 0x6F,
0xC6, 0xD7, 0x01, 0x3D, 0x21, 0x62, 0xEA, 0x4B, 0xD6, 0xAF, 0x13, 0x55, 0xC4, 0xA1, 0x70, 0x00,
0xE0, 0x9D, 0x27, 0xD3, 0xBB, 0x43, 0x43, 0xD0, 0xB5, 0xD7, 0x9D, 0x41, 0x30, 0x7E, 0xD7, 0x57,
0x00, 0x02, 0xCA, 0x6A, 0x19, 0x7C, 0x20, 0xA4, 0x02, 0x2C, 0x0C, 0x41, 0x97, 0xBF, 0x49, 0x70,
0xCF, 0x00, 0x76, 0xC0, 0xB9, 0x61, 0xB8, 0x59, 0xC3, 0xED, 0x10, 0x57, 0x8F, 0xA5, 0x7F, 0x10,
0xC3, 0xD8, 0x00, 0x05, 0xF3, 0xFC, 0xBC, 0x7D, 0xAC, 0x72, 0x27, 0x37, 0x8A, 0xF1, 0xE2, 0x66,
0xC1, 0xE0, 0x28, 0x00, 0xCE, 0xBD, 0xBF, 0x52, 0x2B, 0x31, 0xEF, 0x13, 0x5B, 0xB4, 0x53, 0x7C,
0x9F, 0xE0, 0x51, 0x7B, 0x00, 0xED, 0x39, 0xB9, 0x9A, 0x8F, 0xA1, 0xB2, 0x64, 0x33, 0x35, 0xBE,
0x01, 0x45, 0x23, 0x9F, 0xAF, 0x00, 0x3D, 0xAF, 0xFF, 0x29, 0xD8, 0x42, 0x2C, 0x53, 0x68, 0x25,
0xFB, 0x9A, 0x58, 0x80, 0x9A, 0x41, 0x00, 0x28, 0x5D, 0xD8, 0x59, 0x3C, 0x30, 0x93, 0x3C, 0x1A,
0x93, 0xAE, 0x3D, 0x36, 0xD2, 0xA3, 0xCA, 0x00, 0x6A, 0x3C, 0x97, 0xC7, 0xA5, 0x43, 0x3E, 0x78,
0x27, 0x41, 0xA5, 0x97, 0x1A, 0xCC, 0xD1, 0xB3, 0x00, 0x26, 0x7C, 0x05, 0xAD, 0x08, 0x27, 0xD9,
0xF0, 0x1B, 0xBC, 0x05, 0xC2, 0x07, 0x54, 0x69, 0x74, 0x00, 0x34, 0x5C, 0x16, 0x01, 0x8A, 0x4C,
0xC5, 0xE8, 0x31, 0xB7, 0xDC, 0xE7, 0x0F, 0xED, 0xA2, 0xE3, 0x00, 0x1D, 0x2A, 0x1E, 0x83, 0x88,
0x2C, 0x02, 0x09, 0x2E, 0x9D, 0x39, 0x4E, 0x1F, 0x39, 0x47, 0xFA, 0x00, 0x1C, 0xFF, 0xA9, 0x76,
0x4E, 0x91, 0x90, 0x7C, 0x36, 0x8D, 0xFB, 0x93, 0x5C, 0xD2, 0x30, 0x30, 0x00, 0x69, 0x45, 0x4C,
0x8F, 0x00, 0x97, 0xF6, 0x6E, 0xC7, 0x79, 0x19, 0x5D, 0x3D, 0xF3, 0x2D, 0x56, 0x00, 0x93, 0x11,
0x42, 0x39, 0x66, 0x7C, 0xFD, 0x26, 0xF7, 0x7A, 0x7A, 0xEA, 0xB8, 0x9D, 0xE7, 0xD8, 0x00, 0x13,
0x48, 0xE7, 0x5E, 0x3B, 0x59, 0x1D, 0x78, 0x44, 0x42, 0x46, 0xF5, 0xC7, 0x8E, 0xB6, 0x78, 0x00,
0x71, 0x18, 0x48, 0xE2, 0x2B, 0x12, 0x6A, 0x86, 0x20, 0xF5, 0xEE, 0xEA, 0xA0, 0xD1, 0x7E, 0x59,
0x00, 0x8B, 0xD0, 0xC9, 0x48, 0x02, 0x10, 0x18, 0x33, 0x5F, 0x90, 0x44, 0x3F, 0x78, 0x95, 0xFF,
0x8F, 0x00, 0x38, 0x0A, 0x1B, 0x78, 0x64, 0x71, 0x5C, 0x99, 0x33, 0xFE, 0x78, 0xAE, 0x7A, 0xBE,
0x7D, 0x9A, 0x00, 0xEF, 0x4D, 0xCA, 0xA5, 0xED, 0x2B, 0x46, 0x0D, 0xD3, 0x8C, 0x82, 0xC4, 0xA5,
0x2C, 0x75, 0x42, 0x00, 0xCE, 0x95, 0x72, 0xD1, 0xCB, 0xF0, 0xD2, 0x46, 0x39, 0x59, 0xE2, 0xC0,
0x4C, 0x51, 0x3E, 0xA9, 0x00, 0x4F, 0x79, 0x4B, 0x2E, 0xA4, 0xDE, 0x75, 0xDA, 0x52, 0x86, 0x88,
0xD2, 0xCF, 0x9C, 0x68, 0xB0, 0x00, 0x32, 0x2A, 0xDE, 0x17, 0x41, 0x99, 0x22, 0x0F, 0xE2, 0x45,
0x77, 0x58, 0x66, 0xA6, 0x46, 0x77, 0x00, 0x6B, 0x78, 0xF8, 0x26, 0xB7, 0xB9, 0xD1, 0x18, 0x02,
0xEB, 0x86, 0xAA, 0x59, 0x9A, 0x93, 0xAF, 0x00, 0x0F, 0x8C, 0x3A, 0xB5, 0x6D, 0x79, 0x26, 0x1C,
0x5C, 0x5B, 0xF8, 0x20, 0x88, 0xC0, 0x62, 0xA8, 0x00, 0x49, 0x35, 0x28, 0xB9, 0xEC, 0x77, 0x23,
0xFF, 0xE0, 0xAA, 0x52, 0x9C, 0x03, 0x52, 0xCF, 0x79, 0x00, 0x6E, 0x13, 0xB5, 0x76, 0x11, 0x19,
0x91, 0x32, 0xBB, 0x93, 0x28, 0x3E, 0x0A, 0xE3, 0xDB, 0x88, 0x00, 0x79, 0x0B, 0xCB, 0xC9, 0x04,
0x61, 0x7D, 0xA4, 0x6F, 0x6B, 0x08, 0xB9, 0x53, 0x5D, 0x5B, 0x70, 0x00, 0x8A, 0xC0, 0xFE, 0xCD,
0xC9, 0x63, 0x94, 0x87, 0xF7, 0x65, 0x76, 0xAB, 0x9A, 0xD2, 0x62, 0x70, 0x00, 0x77, 0x1E, 0xC7,
0x32, 0x66, 0x50, 0xDC, 0xF0, 0x7B, 0x28, 0x71, 0x56, 0xBD, 0xB6, 0x8A, 0x64, 0x00, 0x21, 0x84,
0x88, 0xFD, 0xB6, 0x2B, 0xB0, 0x7B, 0xDA, 0x70, 0x26, 0x5B, 0x44, 0x77, 0x11, 0x61, 0x00, 0xEB,
0xFB, 0x1D, 0x54, 0x90, 0x03, 0xD8, 0x29, 0x64, 0x76, 0xB4, 0x3B, 0xDD, 0xBB, 0xA0, 0xB2, 0x00,
0xC1, 0xE4, 0x00, 0xB4, 0x9D, 0x4C, 0x28, 0x2C, 0x9B, 0x49, 0xB6, 0xD6, 0x5A, 0x62, 0x1B, 0x12,
0x00, 0xA1, 0xC6, 0x2F, 0xE4, 0xEE, 0xD0, 0x1E, 0x57, 0xF2, 0x14, 0x95, 0x10, 0x80, 0xDF, 0xCE,
0x05, 0x00, 0x96, 0x3F, 0xF9, 0x3C, 0x9F, 0x26, 0x81, 0xEC, 0x6E, 0x3A, 0x63, 0x3D, 0xB1, 0x89,
0x15, 0x1B, 0x00, 0x04, 0x4C, 0xB8, 0xAF, 0xFD, 0x54, 0x09, 0x68, 0x09, 0x89, 0xD4, 0x74, 0x63,
0x1C, 0xDD, 0xCD, 0x00, 0x68, 0x93, 0x7C, 0xB2, 0x88, 0x09, 0x0A, 0x4F, 0x40, 0xF0, 0x54, 0xA8,
0xCC, 0xC1, 0x6E, 0x25, 0x00, 0xD1, 0xBB, 0x83, 0xCF, 0xBF, 0x1F, 0x60, 0xFD, 0x00, 0x02, 0xCC,
0x38, 0x76, 0x1A, 0x8A, 0xE7, 0x00, 0x8A, 0xF3, 0x86, 0x26, 0xDB, 0xC6, 0x99, 0xB0, 0x48, 0x50,
0x10, 0x23, 0x11, 0x95, 0x4F, 0xF0, 0x00, 0x69, 0xBB, 0x2B, 0x10, 0x3C, 0x46, 0xA3, 0x86, 0x40,
0xFC, 0xD2, 0x35, 0xF7, 0x6F, 0x10, 0x86, 0x00, 0x61, 0x65, 0x87, 0xD4, 0x53, 0x4C, 0x4C, 0x68,
0x18, 0xC4, 0xD6, 0xF1, 0x13, 0x3A, 0xE4, 0x48, 0x00, 0x8D, 0xA3, 0x03, 0xAA, 0x5B, 0x41, 0x86,
0x9F, 0xA5, 0x29, 0xF3, 0xBA, 0x24, 0x0C, 0x35, 0x53, 0x00, 0xA3, 0x74, 0xE4, 0x56, 0xE0, 0x59,
0xA9, 0x6B, 0xDC, 0x08, 0xAB, 0xCC, 0x73, 0xAB, 0xB7, 0x52, 0x00, 0x8B, 0x26, 0x4A, 0x4D, 0xF5,
0x95, 0xFC, 0xB8, 0x54, 0xBC, 0x4B, 0x56, 0x78, 0x8F, 0x29, 0xD0, 0x00, 0x50, 0x11, 0xF8, 0x7E,
0xA0, 0xD8, 0x39, 0x2A, 0x84, 0xDD, 0x47, 0xA6, 0x66, 0x36, 0xB7, 0xFF, 0x00, 0xCF, 0x56, 0xE2,
0x1A, 0x37, 0x88, 0x14, 0x14, 0x19, 0x58, 0x6B, 0x71, 0xB1, 0x8D, 0xBB, 0xDF, 0x00, 0xD0, 0x23,
0x54, 0xAB, 0xFB, 0xB6, 0xAF, 0x3C, 0xC0, 0xAD, 0x69, 0x55, 0xAC, 0x5B, 0x64, 0x3D, 0x00, 0x3B,
0x70, 0x1C, 0xE8, 0xF7, 0xD9, 0x1E, 0xEF, 0xDC, 0xAA, 0xB9, 0xD2, 0x76, 0x53, 0x17, 0x1C, 0x00,
0x1E, 0xB4, 0x69, 0xAE, 0x7B, 0xFC, 0x28, 0x40, 0x6C, 0x41, 0x56, 0xCC, 0xAD, 0x81, 0x4F, 0xF5,
0x00, 0x7A, 0xD1, 0xC0, 0x04, 0x4F, 0x38, 0x4F, 0xAE, 0x2A, 0xDC, 0x13, 0x86, 0xD5, 0xEF, 0x31,
0xC9, 0x00, 0x04, 0xE4, 0xC7, 0xFF, 0xC2, 0x7C, 0x19, 0x9A, 0xF6, 0x3E, 0xFC, 0x51, 0xE1, 0xA3,
0x9C, 0x05, 0x00, 0xD3, 0xA7, 0x78, 0xA2, 0x3F, 0xFD, 0x2A, 0xC0, 0x87, 0xA3, 0x89, 0x48, 0x5C,
0x17, 0x42, 0x8F, 0x00, 0x60, 0x9F, 0x68, 0xA0, 0x5C, 0x14, 0xEC, 0xFA, 0xD8, 0xFC, 0x5B, 0x1F,
0x29, 0xDD, 0x72, 0x0B, 0x00, 0x47, 0xEE, 0x19, 0x6D, 0xD6, 0x7A, 0x88, 0x4C, 0xBF, 0x57, 0x38,
0x40, 0xBF, 0xB1, 0xFE, 0xE1, 0x00, 0x62, 0x0F, 0x36, 0x6F, 0x94, 0x97, 0x53, 0x8D, 0xD2, 0x27,
0x9F, 0xFC, 0x03, 0xBF, 0x7A, 0xFD, 0x00, 0x91, 0x21, 0x4A, 0x21, 0xD5, 0x78, 0xCD, 0x84, 0x3D,
0x25, 0xF8, 0xD1, 0x88, 0x2B, 0xAF, 0xF4, 0x00, 0x6C, 0x0F, 0x40, 0x45, 0x99, 0xFE, 0xBF, 0x51,
0xC4, 0xC4, 0x76, 0x51, 0x0C, 0x72, 0x7E, 0x5E, 0x00, 0x61, 0xA4, 0x34, 0x74, 0x93, 0x55, 0x6C,
0x6E, 0x6D, 0xB4, 0x0D, 0x6F, 0x3A, 0x68, 0x48, 0x51, 0x00, 0x35, 0xF5, 0x7C, 0x4E, 0x81, 0x40,
0xC5, 0x8E, 0x97, 0x4D, 0x5C, 0xC6, 0xFC, 0x7F, 0x7D, 0x65, 0x00, 0x1B, 0x3E, 0xD7, 0x34, 0xAA,
0x26, 0x68, 0x72, 0x7C, 0xE7, 0x22, 0xFC, 0x75, 0x9D, 0x68, 0x45, 0x00, 0xC1, 0xF1, 0x61, 0xE2,
0x56, 0x33, 0xFF, 0xE0, 0x94, 0x22, 0x3C, 0x81, 0x52, 0x50, 0x22, 0xF7, 0x00, 0xCC, 0x66, 0x8A,
0x20, 0x4A, 0xCF, 0xC1, 0xC1, 0x2E, 0xCC, 0x6E, 0xCA, 0x97, 0x49, 0x67, 0xA6, 0x00, 0xA2, 0xAC,
0x76, 0x9A, 0x1D, 0x61, 0x0D, 0x3B, 0xD1, 0x05, 0xA8, 0x06, 0x85, 0x5E, 0x3B, 0x9C, 0x00, 0x62,
0x90, 0x33, 0x29, 0xF6, 0xC8, 0x3F, 0x53, 0x90, 0x5C, 0x6F, 0xEF, 0xB6, 0x7E, 0xCD, 0x60, 0x00,
0x89, 0x7A, 0xEE, 0xF1, 0xED, 0x1B, 0x73, 0xA4, 0x71, 0xE2, 0xC2, 0xF1, 0x04, 0x05, 0x1E, 0x81,
0x00, 0xD8, 0xB0, 0x87, 0xB1, 0x29, 0xC6, 0xC3, 0x07, 0xE0, 0x86, 0xE1, 0xFC, 0x1C, 0xA3, 0xC3,
0xF5, 0x00, 0xB8, 0xC7, 0x24, 0x21, 0x1D, 0xC7, 0xC5, 0x42, 0xFD, 0x73, 0x00, 0xA1, 0x78, 0x10,
0x2B, 0x27, 0x00, 0x65, 0x36, 0xA6, 0x82, 0x54, 0xF2, 0x85, 0x1A, 0x41, 0xC7, 0x5E, 0xB9, 0xD8,
0xAB, 0xAA, 0xBD, 0x00, 0x5B, 0x02, 0x9A, 0x0B, 0xC2, 0x1C, 0x68, 0xBE, 0x1D, 0xCF, 0x10, 0x87,
0xA3, 0x8A, 0xE8, 0x97, 0x00, 0xAD, 0xA0, 0x03, 0x54, 0xB1, 0x43, 0xA0, 0x71, 0x3C, 0xC2, 0x0F,
0x60, 0x18, 0xB7, 0x81, 0x04, 0x00, 0xAE, 0x11, 0xA4, 0x21, 0xDA, 0x2E, 0x00, 0x26, 0x1A, 0xA2,
0x97, 0x55, 0x6D, 0xD8, 0x40, 0xEF, 0x00, 0x9A, 0xA2, 0x81, 0xCF, 0x4B, 0x76, 0xCA, 0x80, 0x2E,
0xDD, 0x96, 0xD4, 0xCE, 0xBA, 0x7A, 0xA3, 0x00, 0x2C, 0xF8, 0x09, 0x88, 0xD7, 0x40, 0x36, 0x42,
0xAE, 0xBC, 0x88, 0x08, 0xDF, 0x36, 0x54, 0x7E, 0x00, 0x45, 0x6A, 0xAC, 0x35, 0x6F, 0xC1, 0x3C,
0xE6, 0xD7, 0xD8, 0x54, 0xD1, 0x90, 0x80, 0x32, 0x77, 0x00, 0x37, 0x11, 0x90, 0x89, 0x8C, 0x91,
0x4F, 0x79, 0x4A, 0x9E, 0x47, 0x6E, 0xC0, 0x18, 0xC3, 0x11, 0x00, 0xB5, 0x51, 0xAE, 0xF6, 0xF0,
0x28, 0xCE, 0x97, 0x53, 0x78, 0x05, 0x1D, 0xDC, 0x79, 0xED, 0x1E, 0x00, 0x2A, 0xD3, 0x62, 0x85,
0x30, 0x10, 0x4A, 0x68, 0x8D, 0x1D, 0xC6, 0xE4, 0xB8, 0xD8, 0xBF, 0xEC, 0x00, 0xD6, 0x7A, 0xED,
0x13, 0x9E, 0x83, 0x73, 0x3C, 0xD8, 0xA7, 0x4D, 0x8B, 0x9C, 0x2D, 0xDB, 0x28, 0x00, 0x94, 0x2A,
0xCF, 0xA4, 0x79, 0x0B, 0xC2, 0x87, 0x8A, 0x03, 0x50, 0xD1, 0xD1, 0xA9, 0x05, 0x5E, 0x00, 0x71,
0xAA, 0xF0, 0xC6, 0x91, 0x1C, 0x1A, 0x9F, 0x79, 0x52, 0x11, 0x4F, 0xB5, 0x90, 0x1E, 0x69, 0x00,
0xE3, 0x06, 0xB0, 0x35, 0x38, 0x57, 0x22, 0xFF, 0x33, 0x8E, 0xE1, 0x48, 0x38, 0x52, 0xD9, 0x2D,
0x00, 0x5A, 0xE2, 0x54, 0x77, 0x40, 0xEB, 0x12, 0x36, 0xFA, 0xA4, 0xD1, 0x15, 0xCF, 0x32, 0xF8,
0xB0, 0x00, 0x09, 0x5F, 0xA7, 0xA0, 0x58, 0x14, 0x2A, 0xF8, 0x06, 0x22, 0x80, 0x99, 0xB0, 0xEB,
0xC2, 0xAD, 0x00, 0xA7, 0x13, 0x06, 0x8B, 0x8A, 0x30, 0xFB, 0x9D, 0x29, 0x31, 0xAB, 0xFF, 0xAA,
0x58, 0x8D, 0x06, 0x00, 0x80, 0x53, 0x53, 0x0D, 0x03, 0xF0, 0x09, 0xFE, 0xA9, 0xF6, 0x53, 0x52,
0x08, 0xF1, 0xA0, 0x07, 0x00, 0x58, 0xDB, 0x0A, 0x34, 0xF1, 0x0B, 0x1A, 0x04, 0x6D, 0x4F, 0x15,
0xC1, 0xEF, 0xE8, 0x91, 0x4F, 0x00, 0x43, 0x16, 0x08, 0xBB, 0xE3, 0x9E, 0x22, 0x3E, 0x33, 0xB7,
0x3E, 0x13, 0x2D, 0x15, 0x75, 0x20, 0x00, 0xAB, 0xAE, 0x4C, 0x98, 0xE3, 0xC0, 0xAA, 0xEF, 0x30,
0x8A, 0xE4, 0x56, 0x92, 0x96, 0xC0, 0x98, 0x00, 0x0B, 0x31, 0x1B, 0x09, 0x77, 0xA3, 0x5F, 0x0D,
0xF8, 0x1F, 0x19, 0x1F, 0xEC, 0x61, 0xE4, 0x68, 0x00, 0x1C, 0x89, 0xCC, 0x39, 0xFA, 0x8C, 0x22,
0x46, 0x38, 0x1A, 0x38, 0x44, 0xFD, 0x0D, 0x3D, 0xCC, 0x00, 0x3D, 0x75, 0xA6, 0xD9, 0xEE, 0x17,
0xAE, 0x18, 0x44, 0x08, 0xDC, 0xFD, 0xC3, 0x59, 0xD2, 0xEF, 0x00, 0x17, 0xA5, 0x81, 0x59, 0x18,
0xDE, 0x11, 0x85, 0x70, 0x43, 0x81, 0xA4, 0x26, 0xF7, 0x6C, 0x51, 0x00, 0xCD, 0xB9, 0xFA, 0xE3,
0xEC, 0x35, 0xAC, 0x7A, 0x1D, 0xC2, 0xA5, 0xEC, 0x41, 0x5A, 0xF5, 0x01, 0x00, 0xA6, 0xC6, 0x1A,
0x05, 0x6B, 0xBF, 0xC9, 0xFA, 0xCC, 0x49, 0x16, 0x45, 0x24, 0xD4, 0xC0, 0xF2, 0x00, 0x98, 0xD3,
0xAA, 0xEA, 0x0F, 0x8D, 0x65, 0x4A, 0x8E, 0x79, 0x0C, 0x92, 0xFB, 0xCD, 0x72, 0xD2, 0x00, 0x63,
0xE3, 0x35, 0x03, 0x43, 0x19, 0x32, 0xC8, 0x86, 0xBB, 0xC9, 0xC7, 0xBC, 0xD1, 0x37, 0xC8, 0x00,
0xEC, 0x2A, 0x6A, 0xAD, 0xF3, 0xAF, 0xF3, 0x89, 0xFB, 0x6A, 0x57, 0x70, 0x7C, 0x62, 0xE2, 0xBB,
0x00,
} ;
void main(int argc, char **argv) {
uint32_t state[5];
uint8_t block1[64];
uint8_t block2[64];
memset(block1, 0, 64);
memset(block2, 0, 64);
block1[16] = 0x80;
block1[63] = 0x80;
block2[0x14] = 0x80;
block2[63] = 0xA0;
state[0] = 0x67452301;
state[1] = 0xEFCDAB89;
state[2] = 0x98BADCFE;
state[3] = 0x10325476;
state[4] = 0xC3D2E1F0;
char a,b,c,d,e,f,g,h;
for(a = '0'; a <= '9'; ++a) {
block1[0] = a;
for(b = '0'; b <= '9'; ++b) {
block1[2] = b;
for(c = '0'; c <= '9'; ++c) {
block1[4] = c;
for(d = '0'; d <= '9'; ++d) {
block1[6] = d;
for(e = '0'; e <= '9'; ++e) {
block1[8] = e;
for(f = '0'; f <= '9'; ++f) {
block1[10] = f;
for(g = '0'; g <= '9'; ++g) {
block1[12] = g;
for(h = '0'; h <= '9'; ++h) {
block1[14] = h;
/*
block1[0] = '1';
block1[2] = '8';
block1[4] = '2';
block1[6] = '9';
block1[8] = '4';
block1[10] = '3';
block1[12] = '1';
block1[14] = '9';
*/
state[0] = 0x67452301;
state[1] = 0xEFCDAB89;
state[2] = 0x98BADCFE;
state[3] = 0x10325476;
state[4] = 0xC3D2E1F0;
sha1_compress(state, block1);
//printf("%08X%08X%08X%08X%08X\n", state[0], state[1], state[2], state[3], state[4]);
state[0] = __bswap_32(state[0]);
state[1] = __bswap_32(state[1]);
state[2] = __bswap_32(state[2]);
state[3] = __bswap_32(state[3]);
state[4] = __bswap_32(state[4]);
memcpy(block2, state, 0x14);
state[0] = 0x67452301;
state[1] = 0xEFCDAB89;
state[2] = 0x98BADCFE;
state[3] = 0x10325476;
state[4] = 0xC3D2E1F0;
sha1_compress(state, block2);
//printf("%08X%08X%08X%08X%08X\n", state[0], state[1], state[2], state[3], state[4]);
state[0] = __bswap_32(state[0]);
state[1] = __bswap_32(state[1]);
state[2] = __bswap_32(state[2]);
state[3] = __bswap_32(state[3]);
int i;
for (i = 0; i < 3*0x2B; ++i) {
if (!memcmp(state, rawData+(i*0x11), 0x10)) {
printf("Match %d %c%c%c%c%c%c%c%c\n", i, a, b, c, d, e, f, g, h);
}
}
}
}
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment