keygen
Description
Analysis
int main(int argc,long argv) {
size_t sVar1;
byte *flag;
byte *input;
// Program requires command line argument
// Argument length should be 42
if ((argc == 2) && (sVar1 = strlen(*(char **)(argv + 8)), sVar1 == 42)) {
puts("dfdfdf"); // Gets printed if conditions are met
input = *(byte **)(argv + 8); // Pointer to argument
flag = &DAT_00102008; // Flag somewhere in memory
while( true ) {
if (*input == 0) { // If fully iterated
puts("Correct");
return 0;
}
// Check if `input` XOR-ed with `10` is same as flag.
if ((*input ^ 10) != *flag) break;
input = input + 1; // Get next character address
flag = flag + 1; // Get next character address
}
puts("Wrong");
return 1;
}
puts("Wrong");
return 1;
}Solution
Last updated

