I'm trying to solve a crackme that contains a key check like so:
lVar4 = vulnerability1(passwd);
if (lVar4 == 0x260a4c7d7af23fc0) {
solve_check(1,0xffffffff);
free(passwd);
uVar3 = 1;
}
with childhood vulnerability being
long vulnerability1(char *param_1)
{
char *local_20;
long local_10;
local_10 = 0x7364626d;
local_20 = param_1;
while( true ) {
if (local_20 == 0) break;
local_10 = local_10 0x1003f + (long)(int)*local_20;
local_20 = local_20 + 1;
}
return local_10;
}
Basically, vulnerability1 cycles through each letter of param1 and applies some transformations. It returns this transformation and it must be the value 0x260a4c7d7af23fc0
My question is: Is there an more "correct" way of finding the correct string besides brute force? How would a veteran RE person do this?