BunnyLab 0 Posted December 9, 2020 Share Posted December 9, 2020 View File Easy CrackMe #1 Only simple algorithms - for one name one key. Provide a valid pair of name and serial, or write a keygen. Good luck. Submitter BunnyLab Submitted 12/09/2020 Category KeygenMe Link to post
Salin 0 Posted December 11, 2020 Share Posted December 11, 2020 (edited) Name:leet Serial:77fe1a9ac6d0e41b35c--- simple string hash + xor some stuff need constants to meet constraint of word count. keygen: Spoiler char buff[0x20], d[0x20]; memset(buff, 0x0, 0x20); cin >> buff; //simple hash char* c = buff; int r = 0; while (*c) { r += *c; c++; } //xor r ^= 0x7654; sprintf(buff, "%x", r); int i = 3; do { r = r << 2 | r >> 30; r ^= 0x7654; sprintf(d, "%x", r); strncat(buff, d, 5); i--; } while (i); buff[19] = 45; buff[20] = 45; buff[21] = 45; buff[22] = '\0'; cout << buff; Edited December 12, 2020 by Salin hide keygen code (see edit history) Link to post
BunnyLab 0 Posted December 11, 2020 Author Share Posted December 11, 2020 (edited) 9 hours ago, Salin said: Name:leet Serial:77fe1a9ac6d0e41b35c--- simple string hash + xor some stuff Right. simple string hash + xor + rol + xor + rol + xor + rol + xor Good job. This krackme for beginners. I'll make it harder - later Edited December 11, 2020 by BunnyLab (see edit history) Link to post
GioTiN 1 Posted December 12, 2020 Share Posted December 12, 2020 here is my keygen keygen.exe Link to post
Ruble 0 Posted February 19 Share Posted February 19 Name : Ruble Serial : 77ae1a8ec6d5e41b21c/*- I don't know how to compilation,so used IDA Spoiler #include<iostream> #include<cstring> using namespace std; int sub_401D0D(char *a1) { int result; // eax result = 0; while ( *a1 ) { result += (char)*a1; a1 += 1; } return result; } int sub_401CD3(int a1, char a2) { return (a1 << (a2 & 0x1F)) | (a1 >> (32 - (a2 & 0x1F))); } int main() { int v1; // esi char *v2; // esi int v3; // eax char v4; // al char *v5; // edi char *v6; // ecx char *Destination; // [esp+Ch] [ebp-Ch] int v9; // [esp+10h] [ebp-8h] char *Buffer; // [esp+14h] [ebp-4h] Destination = (char *)operator new(0x20); Buffer = (char *)operator new(0x20); cin>>Destination; v1 = sub_401D0D(Destination) ^ 0x7654; sprintf(Destination, "%x", v1); v9 = 3; do { v1 = sub_401CD3(v1, 2) ^ 0x7654; sprintf(Buffer, "%x", v1); strncat(Destination, Buffer, 5); --v9; } while ( v9 ); //00401ADE |. 83F8 16 cmp eax,0x16 //00401AE1 |. 74 0E je short CrackMe_.00401AF1 //比较键入的值长度是否为16 后三位随便内容 cout<<Destination<<"/*-"; return 0; } Link to post
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