vic4key

WhiteHat 2014 - RE300

Oct 8th, 2014
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.41 KB | None | 0 0
  1. /*
  2.     WhiteHat Grand Prix 2014
  3.     RE300
  4.     Vic | CiN1
  5. */
  6.  
  7. #include <iostream>
  8.  
  9. using namespace std;
  10.  
  11. const unsigned char const_values[0xFF + 1] = {0x70,0x3B,0x68,0xF3,0x4D,0xDB,0xA4,0xB7,0x46,0xBE,0x2B,
  12.     0x38,0xE1,0xFA,0x6B,0x50,0xFC,0xE5,0xF7,0x62,0xB0,0x77,0x5A,0x5C,0xD0,0x8C,0xD5,
  13.     0x1A,0x87,0xDC,0x12,0x3D,0xCD,0x3A,0x9B,0x7B,0x4A,0xEC,0x4B,0x1E,0x63,0x1D,0x60,
  14.     0xC2,0x78,0xAD,0xF6,0x94,0x23,0xBC,0x97,0x2D,0x8D,0xE3,0x8E,0x69,0x88,0x66,0x2C,
  15.     0x98,0x9D,0xCB,0x1B,0xFB,0x20,0xAA,0x5D,0xB1,0x05,0x61,0x52,0xF9,0x1F,0xBB,0x04,
  16.     0xFF,0x31,0x10,0x89,0x55,0xF1,0x82,0x7A,0x45,0x25,0x49,0x6F,0x64,0xED,0x18,0x9E,
  17.     0x1C,0xD6,0xD3,0x9A,0xF4,0xC9,0xC0,0x0F,0x0A,0xE2,0x28,0x7E,0x33,0xFD,0x34,0xA0,
  18.     0x2F,0x91,0x57,0xDD,0x03,0x27,0xB6,0x6D,0xCE,0xBF,0x01,0x16,0x43,0xA3,0x59,0xEF,
  19.     0x4C,0xDF,0xD1,0x71,0x15,0xE0,0x7F,0x47,0x85,0x48,0xC4,0xDE,0x56,0x76,0x4F,0x53,
  20.     0x75,0x5B,0xB9,0x95,0x2A,0x09,0x5F,0x92,0x32,0xD2,0x6C,0x08,0x26,0xA5,0x8A,0x58,
  21.     0x07,0xF5,0x51,0xE8,0x9F,0xAB,0xD8,0xC3,0xB2,0xEE,0xC7,0x81,0x44,0x17,0x80,0x0D,
  22.     0xD7,0x29,0xE4,0xA9,0x83,0xC1,0x99,0xE6,0xF0,0x0E,0x6A,0xD4,0xA1,0x74,0x0B,0xEB,
  23.     0x3F,0xAE,0x0C,0xA6,0x41,0xB4,0x93,0xCA,0x30,0x35,0xAF,0x79,0x72,0xAC,0xA8,0x7C,
  24.     0xBD,0x84,0x14,0xB5,0xB3,0xCC,0xCF,0x9C,0x13,0xB8,0xC5,0x40,0x39,0xE7,0x8B,0x22,
  25.     0x02,0x65,0xDA,0x96,0xF2,0x90,0x54,0x06,0xEA,0x2E,0x21,0x42,0xF8,0xC8,0x3E,0x3C,
  26.     0x00,0x5E,0x19,0xD9,0x67,0x86,0x8F,0xA2,0x7D,0x4E,0x6E,0x37,0xBA,0x73,0x24,0xE9,
  27.     0xFE,0x11,0xA7,0x36,0xC6};
  28.  
  29. const unsigned char real_values[8] = {0x2F,0xE8,0xA5,0xBA,0xA4,0xA4,0x0F,0xBD};
  30. /* const unsigned char fake_values[8] = {0x5A,0xD9,0xB9,0x38,0xD8,0x32,0xE1,0x4F};
  31. const unsigned char pass_word[8] = {0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF}; */
  32.  
  33. const char user_name[] = "Vic";
  34.  
  35. #pragma warn -8008
  36. unsigned char find_in_const_values(unsigned char value)
  37. {
  38.     unsigned char i;
  39.  
  40.     for (i = 0; i <= 0xFF; i++) {
  41.         if (value == const_values[i]) {
  42.             break;
  43.         }
  44.     }
  45.  
  46.     return i;
  47. }
  48.  
  49. int main(int, const char*[])
  50. {
  51.     for (unsigned char i = 0; i < 8; i++) {
  52.         /* unsigned char pos = fake_values[i];
  53.         for (unsigned int j = 0; j < strlen(user_name); j++) {
  54.             pos = const_values[user_name[j] ^ pos];
  55.         }
  56.         printf("%0.2X",pos); */
  57.         unsigned char pos = real_values[i];
  58.         for (unsigned char j = (unsigned char)strlen(user_name) - 1; j != 255; j--) {
  59.             pos = (unsigned char)user_name[j] ^ find_in_const_values(pos);
  60.         }
  61.         printf("%0.2X",pos);
  62.     }
  63.  
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment