72 lines
1.7 KiB
Plaintext
72 lines
1.7 KiB
Plaintext
undefined4 auth(char *param_1,uint param_2)
|
|
{
|
|
size_t sVar1;
|
|
undefined4 uVar2;
|
|
long lVar3;
|
|
int local_18;
|
|
uint local_14;
|
|
|
|
sVar1 = strcspn(param_1,"\n");
|
|
param_1[sVar1] = '\0';
|
|
sVar1 = strnlen(param_1,0x20);
|
|
if ((int)sVar1 < 6) {
|
|
uVar2 = 1;
|
|
}
|
|
else {
|
|
lVar3 = ptrace(PTRACE_TRACEME);
|
|
if (lVar3 == -1) {
|
|
puts("\x1b[32m.---------------------------.");
|
|
puts("\x1b[31m| !! TAMPERING DETECTED !! |");
|
|
puts("\x1b[32m\'---------------------------\'");
|
|
uVar2 = 1;
|
|
}
|
|
else {
|
|
local_14 = ((int)param_1[3] ^ 0x1337U) + 0x5eeded;
|
|
for (local_18 = 0; local_18 < (int)sVar1; local_18 = local_18 + 1) {
|
|
if (param_1[local_18] < ' ') {
|
|
return 1;
|
|
}
|
|
local_14 = local_14 + ((int)param_1[local_18] ^ local_14) % 0x539;
|
|
}
|
|
if (param_2 == local_14) {
|
|
uVar2 = 0;
|
|
}
|
|
else {
|
|
uVar2 = 1;
|
|
}
|
|
}
|
|
}
|
|
return uVar2;
|
|
}
|
|
|
|
bool main(void)
|
|
{
|
|
int iVar1;
|
|
int in_GS_OFFSET;
|
|
char local_34 [32];
|
|
int local_14;
|
|
|
|
local_14 = *(int *)(in_GS_OFFSET + 0x14);
|
|
puts("***********************************");
|
|
puts("*\t\tlevel06\t\t *");
|
|
puts("***********************************");
|
|
printf("-> Enter Login: ");
|
|
fgets(local_34,0x20,stdin);
|
|
puts("***********************************");
|
|
puts("***** NEW ACCOUNT DETECTED ********");
|
|
puts("***********************************");
|
|
printf("-> Enter Serial: ");
|
|
__isoc99_scanf();
|
|
iVar1 = auth();
|
|
if (iVar1 == 0) {
|
|
puts("Authenticated!");
|
|
system("/bin/sh");
|
|
}
|
|
if (local_14 != *(int *)(in_GS_OFFSET + 0x14)) {
|
|
/* WARNING: Subroutine does not return */
|
|
__stack_chk_fail();
|
|
}
|
|
return iVar1 != 0;
|
|
}
|
|
|