chore: decompiled source files

This commit is contained in:
Paco BONILLA 2025-05-22 14:03:58 +02:00
parent bf07be80b0
commit e6c3264ad3
13 changed files with 483 additions and 0 deletions

View File

@ -0,0 +1,50 @@
undefined4 main(void)
{
char local_3a [54];
pp(local_3a);
puts(local_3a);
return 0;
}
void pp(char *param_1)
{
char cVar1;
uint uVar2;
char *pcVar3;
byte bVar4;
char local_34 [20];
char local_20 [20];
bVar4 = 0;
p(local_34,&DAT_080486a0);
p(local_20,&DAT_080486a0);
strcpy(param_1,local_34);
uVar2 = 0xffffffff;
pcVar3 = param_1;
do {
if (uVar2 == 0) break;
uVar2 = uVar2 - 1;
cVar1 = *pcVar3;
pcVar3 = pcVar3 + (uint)bVar4 * -2 + 1;
} while (cVar1 != '\0');
*(undefined2 *)(param_1 + (~uVar2 - 1)) = 0x20;
strcat(param_1,local_20);
return;
}
void p(char *param_1,char *param_2)
{
char *pcVar1;
char local_100c [4104];
puts(param_2);
read(0,local_100c,0x1000);
pcVar1 = strchr(local_100c,10);
*pcVar1 = '\0';
strncpy(param_1,local_100c,0x14);
return;
}

View File

@ -0,0 +1,20 @@
undefined4 main(undefined4 param_1,int param_2)
{
undefined4 uVar1;
undefined local_3c [40];
int local_14;
local_14 = atoi(*(char **)(param_2 + 4));
if (local_14 < 10) {
memcpy(local_3c,*(void **)(param_2 + 8),local_14 * 4);
if (local_14 == 0x574f4c46) {
execl("/bin/sh","sh",0);
}
uVar1 = 0;
}
else {
uVar1 = 1;
}
return uVar1;
}

View File

@ -0,0 +1,49 @@
undefined4 main(int param_1,int param_2)
{
undefined4 uVar1;
int iVar2;
undefined4 *puVar3;
undefined4 *puVar4;
byte bVar5;
undefined4 local_60 [10];
char acStack_38 [36];
char *local_14;
bVar5 = 0;
if (param_1 == 3) {
puVar3 = local_60;
for (iVar2 = 0x13; iVar2 != 0; iVar2 = iVar2 + -1) {
*puVar3 = 0;
puVar3 = puVar3 + 1;
}
strncpy((char *)local_60,*(char **)(param_2 + 4),0x28);
strncpy(acStack_38,*(char **)(param_2 + 8),0x20);
local_14 = getenv("LANG");
if (local_14 != (char *)0x0) {
iVar2 = memcmp(local_14,&DAT_0804873d,2);
if (iVar2 == 0) {
language = 1;
}
else {
iVar2 = memcmp(local_14,&DAT_08048740,2);
if (iVar2 == 0) {
language = 2;
}
}
}
puVar3 = local_60;
puVar4 = (undefined4 *)&stack0xffffff50;
for (iVar2 = 0x13; iVar2 != 0; iVar2 = iVar2 + -1) {
*puVar4 = *puVar3;
puVar3 = puVar3 + (uint)bVar5 * -2 + 1;
puVar4 = puVar4 + (uint)bVar5 * -2 + 1;
}
uVar1 = greetuser();
}
else {
uVar1 = 1;
}
return uVar1;
}

View File

@ -0,0 +1,40 @@
undefined4 main(int param_1,int param_2)
{
undefined4 uVar1;
int iVar2;
undefined4 *puVar3;
byte bVar4;
undefined4 local_98 [16];
undefined local_57;
char local_56 [66];
FILE *local_14;
bVar4 = 0;
local_14 = fopen("/home/user/end/.pass","r");
puVar3 = local_98;
for (iVar2 = 0x21; iVar2 != 0; iVar2 = iVar2 + -1) {
*puVar3 = 0;
puVar3 = puVar3 + (uint)bVar4 * -2 + 1;
}
if ((local_14 == (FILE *)0x0) || (param_1 != 2)) {
uVar1 = 0xffffffff;
}
else {
fread(local_98,1,0x42,local_14);
local_57 = 0;
iVar2 = atoi(*(char **)(param_2 + 4));
*(undefined *)((int)local_98 + iVar2) = 0;
fread(local_56,1,0x41,local_14);
fclose(local_14);
iVar2 = strcmp((char *)local_98,*(char **)(param_2 + 4));
if (iVar2 == 0) {
execl("/bin/sh","sh",0);
}
else {
puts(local_56);
}
uVar1 = 0;
}
return uVar1;
}

View File

@ -0,0 +1,14 @@
void main(void)
{
char local_50 [76];
gets(local_50);
return;
}
void run(void)
{
fwrite("Good... Wait what?\n",1,0x13,stdout);
system("/bin/sh");
return;
}

View File

@ -0,0 +1,25 @@
void main(void)
{
p();
return;
}
void p(void)
{
uint unaff_retaddr;
char local_50 [76];
fflush(stdout);
gets(local_50);
if ((unaff_retaddr & 0xb0000000) == 0xb0000000) {
printf("(%p)\n",unaff_retaddr);
/* WARNING: Subroutine does not return */
_exit(1);
}
puts(local_50);
strdup(local_50);
return;
}

View File

@ -0,0 +1,22 @@
void main(void)
{
v();
return;
}
void v(void)
{
char local_20c [520];
fgets(local_20c,0x200,stdin);
printf(local_20c);
if (m == 0x40) {
fwrite("Wait what?!\n",1,0xc,stdout);
system("/bin/sh");
}
return;
}

View File

@ -0,0 +1,26 @@
void main(void)
{
n();
return;
}
void n(void)
{
char local_20c [520];
fgets(local_20c,0x200,stdin);
p(local_20c);
if (m == 0x1025544) {
system("/bin/cat /home/user/level5/.pass");
}
return;
}
void p(char *param_1)
{
printf(param_1);
return;
}

View File

@ -0,0 +1,28 @@
void main(void)
{
n();
return;
}
void n(void)
{
char local_20c [520];
fgets(local_20c,0x200,stdin);
printf(local_20c);
/* WARNING: Subroutine does not return */
exit(1);
}
void o(void)
{
system("/bin/sh");
/* WARNING: Subroutine does not return */
_exit(1);
}

View File

@ -0,0 +1,28 @@
void main(undefined4 param_1,int param_2)
{
char *__dest;
code **ppcVar1;
__dest = (char *)malloc(0x40);
ppcVar1 = (code **)malloc(4);
*ppcVar1 = m;
strcpy(__dest,*(char **)(param_2 + 4));
(**ppcVar1)();
return;
}
void m(void *param_1,int param_2,char *param_3,int param_4,int param_5)
{
puts("Nope");
return;
}
void n(void)
{
system("/bin/cat /home/user/level7/.pass");
return;
}

View File

@ -0,0 +1,35 @@
undefined4 main(undefined4 param_1,int param_2)
{
undefined4 *puVar1;
void *pvVar2;
undefined4 *puVar3;
FILE *__stream;
puVar1 = (undefined4 *)malloc(8);
*puVar1 = 1;
pvVar2 = malloc(8);
puVar1[1] = pvVar2;
puVar3 = (undefined4 *)malloc(8);
*puVar3 = 2;
pvVar2 = malloc(8);
puVar3[1] = pvVar2;
strcpy((char *)puVar1[1],*(char **)(param_2 + 4));
strcpy((char *)puVar3[1],*(char **)(param_2 + 8));
__stream = fopen("/home/user/level8/.pass","r");
fgets(c,0x44,__stream);
puts("~~");
return 0;
}
void m(void *param_1,int param_2,char *param_3,int param_4,int param_5)
{
time_t tVar1;
tVar1 = time((time_t *)0x0);
printf("%s - %d\n",c,tVar1);
return;
}

116
level8/Ressources/level8.c Normal file
View File

@ -0,0 +1,116 @@
undefined4 main(void)
{
char cVar1;
char *pcVar2;
int iVar3;
uint uVar4;
byte *pbVar5;
byte *pbVar6;
bool bVar7;
undefined uVar8;
undefined uVar9;
bool bVar10;
undefined uVar11;
byte bVar12;
byte local_90 [5];
char local_8b [2];
char acStack_89 [125];
bVar12 = 0;
do {
printf("%p, %p \n",auth,service);
pcVar2 = fgets((char *)local_90,0x80,stdin);
bVar7 = false;
bVar10 = pcVar2 == (char *)0x0;
if (bVar10) {
return 0;
}
iVar3 = 5;
pbVar5 = local_90;
pbVar6 = (byte *)"auth ";
do {
if (iVar3 == 0) break;
iVar3 = iVar3 + -1;
bVar7 = *pbVar5 < *pbVar6;
bVar10 = *pbVar5 == *pbVar6;
pbVar5 = pbVar5 + (uint)bVar12 * -2 + 1;
pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
} while (bVar10);
uVar8 = 0;
uVar11 = (!bVar7 && !bVar10) == bVar7;
if ((bool)uVar11) {
auth = (undefined4 *)malloc(4);
*auth = 0;
uVar4 = 0xffffffff;
pcVar2 = local_8b;
do {
if (uVar4 == 0) break;
uVar4 = uVar4 - 1;
cVar1 = *pcVar2;
pcVar2 = pcVar2 + (uint)bVar12 * -2 + 1;
} while (cVar1 != '\0');
uVar4 = ~uVar4 - 1;
uVar8 = uVar4 < 0x1e;
uVar11 = uVar4 == 0x1e;
if (uVar4 < 0x1f) {
strcpy((char *)auth,local_8b);
}
}
iVar3 = 5;
pbVar5 = local_90;
pbVar6 = (byte *)"reset";
do {
if (iVar3 == 0) break;
iVar3 = iVar3 + -1;
uVar8 = *pbVar5 < *pbVar6;
uVar11 = *pbVar5 == *pbVar6;
pbVar5 = pbVar5 + (uint)bVar12 * -2 + 1;
pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
} while ((bool)uVar11);
uVar9 = 0;
uVar8 = (!(bool)uVar8 && !(bool)uVar11) == (bool)uVar8;
if ((bool)uVar8) {
free(auth);
}
iVar3 = 6;
pbVar5 = local_90;
pbVar6 = (byte *)"service";
do {
if (iVar3 == 0) break;
iVar3 = iVar3 + -1;
uVar9 = *pbVar5 < *pbVar6;
uVar8 = *pbVar5 == *pbVar6;
pbVar5 = pbVar5 + (uint)bVar12 * -2 + 1;
pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
} while ((bool)uVar8);
uVar11 = 0;
uVar8 = (!(bool)uVar9 && !(bool)uVar8) == (bool)uVar9;
if ((bool)uVar8) {
uVar11 = (byte *)0xfffffff8 < local_90;
uVar8 = acStack_89 == (char *)0x0;
service = strdup(acStack_89);
}
iVar3 = 5;
pbVar5 = local_90;
pbVar6 = (byte *)"login";
do {
if (iVar3 == 0) break;
iVar3 = iVar3 + -1;
uVar11 = *pbVar5 < *pbVar6;
uVar8 = *pbVar5 == *pbVar6;
pbVar5 = pbVar5 + (uint)bVar12 * -2 + 1;
pbVar6 = pbVar6 + (uint)bVar12 * -2 + 1;
} while ((bool)uVar8);
if ((!(bool)uVar11 && !(bool)uVar8) == (bool)uVar11) {
if (auth[8] == 0) {
fwrite("Password:\n",1,10,stdout);
}
else {
system("/bin/sh");
}
}
} while( true );
}

View File

@ -0,0 +1,30 @@
void main(int param_1,int param_2)
{
N *this;
undefined4 *this_00;
if (param_1 < 2) {
/* WARNING: Subroutine does not return */
_exit(1);
}
this = (N *)operator.new(0x6c);
N::N(this,5);
this_00 = (undefined4 *)operator.new(0x6c);
N::N((N *)this_00,6);
N::setAnnotation(this,*(char **)(param_2 + 4));
(**(code **)*this_00)(this_00,this);
return;
}
void __thiscall N::setAnnotation(N *this,char *param_1)
{
size_t __n;
__n = strlen(param_1);
memcpy(this + 4,param_1,__n);
return;
}