OverRide/level03/source

145 lines
4.1 KiB
Plaintext

int decrypt(EVP_PKEY_CTX *ctx,uchar *out,size_t *outlen,uchar *in,size_t inlen)
{
char cVar1;
uint uVar2;
int iVar3;
undefined4 *puVar4;
byte *pbVar5;
int in_GS_OFFSET;
bool bVar6;
bool bVar7;
uint local_2c;
undefined4 local_21;
undefined4 local_1d;
undefined4 local_19;
undefined4 local_15;
undefined local_11;
int local_10;
local_10 = *(int *)(in_GS_OFFSET + 0x14);
local_21 = 0x757c7d51;
local_1d = 0x67667360;
local_19 = 0x7b66737e;
local_15 = 0x33617c7d;
local_11 = 0;
uVar2 = 0xffffffff;
puVar4 = &local_21;
do {
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
cVar1 = *(char *)puVar4;
puVar4 = (undefined4 *)((int)puVar4 + 1);
} while (cVar1 != '\0');
local_2c = 0;
while( true ) {
bVar6 = local_2c < ~uVar2 - 1;
bVar7 = local_2c == ~uVar2 - 1;
if (!bVar6) break;
*(byte *)((int)&local_21 + local_2c) = (byte)ctx ^ *(byte *)((int)&local_21 + local_2c);
local_2c = local_2c + 1;
}
iVar3 = 0x11;
puVar4 = &local_21;
pbVar5 = (byte *)"Congratulations!";
do {
if (iVar3 == 0) break;
iVar3 = iVar3 + -1;
bVar6 = *(byte *)puVar4 < *pbVar5;
bVar7 = *(byte *)puVar4 == *pbVar5;
puVar4 = (undefined4 *)((int)puVar4 + 1);
pbVar5 = pbVar5 + 1;
} while (bVar7);
if ((!bVar6 && !bVar7) == bVar6) {
iVar3 = system("/bin/sh");
}
else {
iVar3 = puts("\nInvalid Password");
}
if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
return iVar3;
}
/* WARNING: Subroutine does not return */
__stack_chk_fail();
}
void test(int param_1,int param_2)
{
EVP_PKEY_CTX *pEVar1;
uchar *in_stack_ffffffd8;
size_t *in_stack_ffffffdc;
uchar *in_stack_ffffffe0;
size_t in_stack_ffffffe4;
pEVar1 = (EVP_PKEY_CTX *)(param_2 - param_1);
switch(pEVar1) {
default:
pEVar1 = (EVP_PKEY_CTX *)rand();
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x1:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x2:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x3:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x4:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x5:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x6:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x7:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x8:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x9:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x10:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x11:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x12:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x13:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x14:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
break;
case (EVP_PKEY_CTX *)0x15:
decrypt(pEVar1,in_stack_ffffffd8,in_stack_ffffffdc,in_stack_ffffffe0,in_stack_ffffffe4);
}
return;
}
undefined4 main(void)
{
uint __seed;
__seed = time((time_t *)0x0);
srand(__seed);
puts("***********************************");
puts("*\t\tlevel03\t\t**");
puts("***********************************");
printf("Password:");
__isoc99_scanf();
test();
return 0;
}