145 lines
4.1 KiB
Plaintext
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;
|
|
}
|
|
|