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