xSRTsect Posted February 6, 2015 Posted February 6, 2015 (edited) A very basic crackme I coded a few days ago, the purpose is to get yourself acquainted with the x64 intrinsics. Rules are basic too just fully reverse the damn thing and the first 2 people will get the crackmes source code. Happy Reversing EDIT: The second attachment contains the crackme with the MSVC libraries linked statically. Available Sources For GiveAway: 1 Exodia and Kao solved this little toy AMD_64_1.rar AMD_64.zip Edited February 7, 2015 by xSRTsect
ChOoKi Posted February 6, 2015 Posted February 6, 2015 Ok, let me be the first to pass you the happy news name: ChOoKicode: BA3E066679EEname: Tuts4Youcode: AD233D7A06DE9C00 Keygen is ready but better let others try too cheers 1
mrexodia Posted February 6, 2015 Posted February 6, 2015 (edited) Serial: x64dbg.com81607D6D50E0DD16187DKeygen:#include <stdio.h>#include <cstring>void encrypt(void* data, size_t len){ unsigned char table[] = //quem e o maior? sou eu o dcoder! { 0x71, 0xE7, 0x4E, 0x88, 0x21, 0x4A, 0x72, 0xE8, 0x45, 0x14, 0x57, 0x1B, 0xE0, 0x28, 0xAC, 0xDB, 0x56, 0x83, 0x62, 0xDC, 0xA4, 0x8C, 0xC9, 0xF7, 0x75, 0xE2, 0x4B, 0xC4, 0x9C, 0x68, 0x80, 0xDD, 0xEA, 0x19, 0x1C, 0x65, 0x0D, 0xBD, 0x0A, 0x37, 0x1D, 0xCA, 0x2E, 0x64, 0x24, 0x38, 0x74, 0xAB, 0x02, 0xF4, 0x95, 0x07, 0x7B, 0xC2, 0xC0, 0xFB, 0x7F, 0x8B, 0xDA, 0x63, 0xAA, 0xD1, 0x55, 0x31, 0x66, 0x39, 0xDF, 0xAD, 0x08, 0x36, 0x01, 0x1E, 0x4C, 0xBB, 0x7A, 0x81, 0x8E, 0x58, 0xBC, 0xF3, 0x29, 0x76, 0xA5, 0xB0, 0x69, 0x43, 0xD7, 0xF1, 0x6C, 0x6B, 0x5C, 0xFE, 0x09, 0x4F, 0x46, 0xA2, 0xFD, 0xC7, 0x9A, 0xC3, 0x5B, 0x8A, 0xBF, 0x32, 0x5F, 0xDE, 0x53, 0x7D, 0xC1, 0x79, 0x96, 0xE9, 0xF9, 0x77, 0xA1, 0x2A, 0x0B, 0x87, 0x5E, 0xF8, 0x13, 0xC5, 0x51, 0xFF, 0x1F, 0xE4, 0x04, 0x92, 0x9D, 0xD8, 0x67, 0x85, 0xD2, 0xD6, 0x8D, 0x7C, 0xB7, 0x40, 0xB1, 0xB4, 0x9F, 0x3A, 0x60, 0x0E, 0x97, 0x98, 0xA7, 0x61, 0xCC, 0x99, 0xD9, 0x20, 0x78, 0x4D, 0x03, 0xF5, 0x7E, 0xA0, 0x94, 0xEB, 0xC8, 0x06, 0xBA, 0xE5, 0xAF, 0x50, 0x86, 0x27, 0x2D, 0xE6, 0xBE, 0xCB, 0x16, 0x11, 0xD5, 0x18, 0xA9, 0xF6, 0x41, 0xF2, 0xF0, 0x59, 0x9B, 0x2B, 0x0F, 0x15, 0xCF, 0x2C, 0x3C, 0x6F, 0xCD, 0x0C, 0x34, 0x82, 0x30, 0x6D, 0x8F, 0x9E, 0x35, 0xD3, 0x47, 0x23, 0xEF, 0xCE, 0xFC, 0xFA, 0xE3, 0xED, 0x05, 0x52, 0xA3, 0xA8, 0x3D, 0x25, 0x22, 0xB6, 0x17, 0xD0, 0xB9, 0x5D, 0x00, 0xA6, 0x3B, 0x54, 0xAE, 0x93, 0x26, 0xD4, 0xB5, 0x44, 0xEE, 0x89, 0x73, 0x48, 0x6E, 0x91, 0x10, 0x12, 0x3F, 0x84, 0x33, 0x2F, 0xB3, 0x70, 0x6A, 0x5A, 0xB2, 0x49, 0x90, 0xEC, 0xB8, 0x42, 0x3E, 0xE1, 0xC6, 0x1A }; int storage = 0; for(size_t i = 0; i < len; i++) { storage = (table[i + 1] + storage) & 0xFF; //redundant swaps? int x = table[i + 1]; table[i + 1] = table[storage]; table[storage] = x; int xorval = table[(table[i + 1] + table[storage]) % 256]; ((unsigned char*)data)[i] ^= xorval; }}int main(){ //unit test unsigned char serial[] = {0x01, 0x23, 0x45, 0x67, 0x88, 0x9A, 0xBC, 0xDE, 0xF0, 0x12, 0x34, 0x56, 0x78}; encrypt(serial, sizeof(serial)); unsigned char cmp[]= {0xF8, 0x75, 0x0C, 0x6E, 0xBA, 0x1D, 0x4F, 0xAB, 0x87, 0x02, 0x1E, 0x23, 0x05}; if(!memcmp(cmp, serial, 0xd)) puts("all tests passed!\n"); //generate serial printf("name: "); char name[256]=""; fgets(name, sizeof(name), stdin); int len=strlen(name); name[len-- - 1]=0; encrypt(name, len); printf("code: "); for(int i = 0; i < len; i++) printf("%02X", (unsigned char)name[i]); puts(""); return 0;}EDIT: ChOoKi, first as always Edited February 6, 2015 by Mr. eXoDia
xSRTsect Posted February 6, 2015 Author Posted February 6, 2015 Feel free to request the source by pm.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now