ADD week 3

This commit is contained in:
Rémi Heredero 2025-03-12 11:12:06 +01:00
parent bf74dd7e22
commit 84135a321e
Signed by: Klagarge
GPG Key ID: 735B36B074A65F0F
35 changed files with 452 additions and 0 deletions

0
01-VeryEasy3/VE3.gpr Normal file
View File

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<FILE_INFO>
<BASIC_INFO>
<STATE NAME="CONTENT_TYPE" TYPE="string" VALUE="Program" />
<STATE NAME="PARENT" TYPE="string" VALUE="/" />
<STATE NAME="FILE_ID" TYPE="string" VALUE="a2e40c5a22540267163090739" />
<STATE NAME="FILE_TYPE" TYPE="int" VALUE="0" />
<STATE NAME="READ_ONLY" TYPE="boolean" VALUE="false" />
<STATE NAME="NAME" TYPE="string" VALUE="VE3" />
</BASIC_INFO>
</FILE_INFO>

Binary file not shown.

View File

@ -0,0 +1,4 @@
VERSION=1
/
NEXT-ID:0
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,5 @@
VERSION=1
/
00000000:VE3:a2e40c5a22540267163090739
NEXT-ID:1
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,2 @@
IADD:00000000:/VE3
IDSET:/VE3:a2e40c5a22540267163090739

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<FILE_INFO>
<BASIC_INFO>
<STATE NAME="OWNER" TYPE="string" VALUE="remi" />
</BASIC_INFO>
</FILE_INFO>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<PROJECT>
<PROJECT_DATA_XML_NAME NAME="DISPLAY_DATA">
<SAVE_STATE>
<ARRAY NAME="EXPANDED_PATHS" TYPE="string">
<A VALUE="VE3:" />
</ARRAY>
<STATE NAME="SHOW_TABLE" TYPE="boolean" VALUE="false" />
</SAVE_STATE>
</PROJECT_DATA_XML_NAME>
<TOOL_MANAGER ACTIVE_WORKSPACE="Workspace">
<WORKSPACE NAME="Workspace" ACTIVE="true" />
</TOOL_MANAGER>
</PROJECT>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<FILE_INFO>
<BASIC_INFO>
<STATE NAME="CONTENT_TYPE" TYPE="string" VALUE="ProgramUserData" />
<STATE NAME="PARENT" TYPE="string" VALUE="/" />
<STATE NAME="FILE_ID" TYPE="string" VALUE="a2e40c594c340888329008539" />
<STATE NAME="FILE_TYPE" TYPE="int" VALUE="0" />
<STATE NAME="READ_ONLY" TYPE="boolean" VALUE="false" />
<STATE NAME="NAME" TYPE="string" VALUE="udf_a2e40c5a22540267163090739" />
</BASIC_INFO>
</FILE_INFO>

Binary file not shown.

View File

@ -0,0 +1,4 @@
VERSION=1
/
NEXT-ID:0
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,5 @@
VERSION=1
/
00000000:udf_a2e40c5a22540267163090739:a2e40c594c340888329008539
NEXT-ID:1
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,2 @@
IADD:00000000:/udf_a2e40c5a22540267163090739
IDSET:/udf_a2e40c5a22540267163090739:a2e40c594c340888329008539

View File

@ -0,0 +1,4 @@
VERSION=1
/
NEXT-ID:0
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,4 @@
VERSION=1
/
NEXT-ID:0
MD5:d41d8cd98f00b204e9800998ecf8427e

8
01-VeryEasy3/VE3.txt Normal file
View File

@ -0,0 +1,8 @@
1. What is the target platform of this executable?
ARM32
2. Was this executable stripped?
no
3. What is the secret password hardcoded into this executable? You must send this value by email to pascal+sre25@mod-p.ch before Mar. 10th, 2025, 12h00 CET to validate this lab and get 1 point.
33X5yPBehep4

52
01-VeryEasy3/code.c Normal file
View File

@ -0,0 +1,52 @@
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <sys/types.h>
bool check_password(char *param_1) {
bool uVar1;
//33X5yPBehep4
if (((((param_1[0] == '3') && (param_1[1] == '3')) && (param_1[2] == 'X')) &&
((((param_1[3] == '5' && (param_1[4] == 'y')) &&
((param_1[5] == 'P' && ((param_1[6] == 'B' && (param_1[7] == 'e')))))) &&
(param_1[8] == 'h')))) &&
(((param_1[9] == 'e' && (param_1[10] == 'p')) && (param_1[11] == '4')))) {
uVar1 = true;
}
else {
uVar1 = false;
}
return uVar1;
}
uint64_t main(int param_1,char* *param_2) {
size_t pw_length;
bool pw_correct;
uint64_t uVar3;
if (param_1 == 2) {
pw_length = strlen((char *)param_2[1]);
if (pw_length == 12) {
pw_correct = check_password(param_2[1]);
if (pw_correct == false) {
fwrite("\nWrong password ! Try again...\n\n",1,0x20,stderr);
uVar3 = 1;
}
else {
fprintf(stderr,"\nCongratulations ! The right password is indeed %s :-)\n\n",param_2[1]);
uVar3 = 0;
}
}
else {
fwrite("\nWrong password ! Try again...\n\n",1,0x20,stderr);
uVar3 = 1;
}
}
else {
fwrite("\nMSE-SRE Challenge VE3 --- Enjoy !\n",1,0x23,stderr);
fprintf(stderr,"\nUsage: %s <password>\n\n",*param_2);
uVar3 = 1;
}
return uVar3;
}

0
02-Easy3/E3.gpr Normal file
View File

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<FILE_INFO>
<BASIC_INFO>
<STATE NAME="CONTENT_TYPE" TYPE="string" VALUE="Program" />
<STATE NAME="PARENT" TYPE="string" VALUE="/" />
<STATE NAME="FILE_ID" TYPE="string" VALUE="a2e40c5a09540945517759134" />
<STATE NAME="FILE_TYPE" TYPE="int" VALUE="0" />
<STATE NAME="READ_ONLY" TYPE="boolean" VALUE="false" />
<STATE NAME="NAME" TYPE="string" VALUE="E3" />
</BASIC_INFO>
</FILE_INFO>

Binary file not shown.

View File

@ -0,0 +1,5 @@
VERSION=1
/
00000000:E3:a2e40c5a09540945517759134
NEXT-ID:1
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,5 @@
VERSION=1
/
00000000:E3:a2e40c5a09540945517759134
NEXT-ID:1
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<FILE_INFO>
<BASIC_INFO>
<STATE NAME="OWNER" TYPE="string" VALUE="remi" />
</BASIC_INFO>
</FILE_INFO>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<PROJECT>
<PROJECT_DATA_XML_NAME NAME="DISPLAY_DATA">
<SAVE_STATE>
<ARRAY NAME="EXPANDED_PATHS" TYPE="string">
<A VALUE="E3:" />
</ARRAY>
<STATE NAME="SHOW_TABLE" TYPE="boolean" VALUE="false" />
</SAVE_STATE>
</PROJECT_DATA_XML_NAME>
<TOOL_MANAGER ACTIVE_WORKSPACE="Workspace">
<WORKSPACE NAME="Workspace" ACTIVE="true" />
</TOOL_MANAGER>
</PROJECT>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<FILE_INFO>
<BASIC_INFO>
<STATE NAME="CONTENT_TYPE" TYPE="string" VALUE="ProgramUserData" />
<STATE NAME="PARENT" TYPE="string" VALUE="/" />
<STATE NAME="FILE_ID" TYPE="string" VALUE="c0a82ee89d758705805429400" />
<STATE NAME="FILE_TYPE" TYPE="int" VALUE="0" />
<STATE NAME="READ_ONLY" TYPE="boolean" VALUE="false" />
<STATE NAME="NAME" TYPE="string" VALUE="udf_a2e40c5a09540945517759134" />
</BASIC_INFO>
</FILE_INFO>

Binary file not shown.

View File

@ -0,0 +1,4 @@
VERSION=1
/
NEXT-ID:0
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,5 @@
VERSION=1
/
00000000:udf_a2e40c5a09540945517759134:c0a82ee89d758705805429400
NEXT-ID:1
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,2 @@
IADD:00000000:/udf_a2e40c5a09540945517759134
IDSET:/udf_a2e40c5a09540945517759134:c0a82ee89d758705805429400

View File

@ -0,0 +1,4 @@
VERSION=1
/
NEXT-ID:0
MD5:d41d8cd98f00b204e9800998ecf8427e

View File

@ -0,0 +1,4 @@
VERSION=1
/
NEXT-ID:0
MD5:d41d8cd98f00b204e9800998ecf8427e

110
02-Easy3/E3.txt Normal file
View File

@ -0,0 +1,110 @@
1. What is the target platform of this executable?
ARM64
2. Was this executable stripped?
yes
3. What is the algorithm used to check the validity of a password?
A sum
4. Can you break this password checker, i.e., implementing a generator of valid passwords? You must send 16 different valid passwords by email to pascal+sre25@mod-p.ch before Mar. 10th, 2025, 12h00 CET to validate this lab and get 5 points.
remiPGRz2oEt
remikljzAME/
remiYOxms6U2
remi0eFRgAsu
remimvApt0L9
remisnB2BbvN
remi2KTkcZvN
remi+SUFTsrk
remiRfREU/pz
remilVPBPu5o
remiHRP0Bsww
remi8MhIHsak
remiH9zy7NxL
remigMB24ytt
remiY+9atQeu
remiEtFt+lIj
remi+R2Lniry
remiwUUJOgd8
remiac+ZdwDU
remiSXlJGapD
remiIl7m2xBx
remiEU+jWtUn
remiaxC+vdk1
remiHiSw7Bbg
remilkOGhVOC
remi0gaHUWzW
remi8TwmiD4l
remiNaewP4u9
remiym1yGVJF
remiOgHlqnB2
remitImS5o8d
remi8LoMz9df
remiNOHgblLW
remiAfqSJzFH
remidpDk9COo
remihkNOV8pO
remiAu84iiah
remi5VGexqVG
remiTkZCq9uB
remiuLCxf7KY
remikfKzVV+P
remiXWLR1Xox
remiyZEGxL9a
remiYIylFB5y
remijGqFed9S
remidQBkrcV0
remiuwrG5GIS
remic/C0wrVy
remi2yPCGpag
remiYjgOhdG1
remi/Hi2gVtz
remiX8Ebrrl6
remi/kzJPaAm
remiT1OShoKt
remiiqIX2RtJ
remisDGFQyAn
remiZhbYBFUc
remirboCaPO7
remiXxhCuLR/
remiwZ93maz8
remiQg2N5gxq
remiZ1bg5dwY
remiJrg9kFy7
remiFsWCSSMw
remi5U1vzkBe
remid2eZweX4
remiVLx+JsdW
remi9hEyHu6k
remiByJ9AkzY
remiB27epxnW
remi6VpV8puN
remiPACuhfCc
remicv9OPBXr
remie10Odvlb
remi1x0UemzC
remigEZl+ksB
remiuLbX0bBn
remiPPu2GJmx
remiz5DCyd7s
remi0otpk2NO
remiXA5ZhMms
remix+/QkrUh
remigZaFyW+Z
remiaq+xXLcA
remilSn6AUVn
remigz8tO4Kb
remiblkTOX0Y
remiEeXzs2i3
remiVtkmnA75
remiMN0XipuL
remiiMJE7lfo
remiFQ4cpzq4
remiZJG+Ykzi
remiQTSe6qRg
remi/WcGuyJU
remi77NvCekx
remiHZV2szXN
remiLCRr7tTk
remitgnFQNLC
remiZYpUKKgH

55
02-Easy3/code.c Normal file
View File

@ -0,0 +1,55 @@
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <sys/types.h>
char sum_pw(char *param_1) {
return param_1[11] +
param_1[10] +
param_1[9] +
param_1[8] +
param_1[7] +
param_1[6] +
param_1[5] +
param_1[4] +
param_1[3] +
param_1[2] +
param_1[1] +
param_1[0];
}
uint64_t main(int param_1,char* *param_2) {
char cVar1;
uint64_t ret;
size_t pw_length;
if (param_1 == 2) {
pw_length = strlen((char *)param_2[1]);
if (pw_length == 12) {
cVar1 = sum_pw(param_2[1]);
if (cVar1 == 'j') {
fprintf(stderr,"\nCongratulations ! A right password is indeed %s :-)\n\n",param_2[1]);
ret = 0;
}
else {
fwrite("\nWrong password ! Try again...\n\n",1,0x20,stderr);
ret = 1;
}
}
else {
fwrite("\nWrong password ! Try again...\n\n",1,0x20,stderr);
ret = 1;
}
}
else {
fwrite("\nMSE-SRE Challenge E3 --- Enjoy !\n",1,0x22,stderr);
fwrite("\nWhat I need is 1024 passwords passing the check!\n",1,0x32,stderr);
fprintf(stderr,"\nUsage: %s <password>\n\n",*param_2);
ret = 1;
}
return ret;
}

82
02-Easy3/genKey.c Normal file
View File

@ -0,0 +1,82 @@
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>
const uint16_t NBR_PASSWORDS_REQUESTED = 100;
const char TARGET = 'j';
const char list[] = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'/', '+'
};
char give_char(uint8_t index){
if (index >= sizeof(list)) {
printf("Error: Index out of bounds, max %zu\n", sizeof(list));
exit(1);
}
return list[index];
}
char sum_pw(char *pw) {
return pw[11] +
pw[10] +
pw[9] +
pw[8] +
pw[7] +
pw[6] +
pw[5] +
pw[4] +
pw[3] +
pw[2] +
pw[1] +
pw[0];
}
int main(int argc, char *argv[]) {
srand(time(NULL));
char password[13];
const uint8_t max_char = sizeof(list);
password[0] = 'r';
password[1] = 'e';
password[2] = 'm';
password[3] = 'i';
for(uint16_t n = 0; n < NBR_PASSWORDS_REQUESTED; n++) {
password[4] = give_char(rand() % max_char);
password[5] = give_char(rand() % max_char);
password[6] = give_char(rand() % max_char);
password[7] = give_char(rand() % max_char);
password[8] = give_char(rand() % max_char);
uint16_t i = 0;
do {
password[9] = give_char(rand() % max_char);
password[10] = give_char(rand() % max_char);
password[11] = give_char(rand() % max_char);
if(i++ > 1000){
password[4] = give_char(rand() % max_char);
password[5] = give_char(rand() % max_char);
password[6] = give_char(rand() % max_char);
password[7] = give_char(rand() % max_char);
password[8] = give_char(rand() % max_char);
i = 0;
}
} while (sum_pw(password) != TARGET);
password[12] = '\0';
if (sum_pw(password) == TARGET) {
printf("%s\n", password);
} else {
printf("Fuck\n");
}
}
return 0;
}

BIN
E3_16 Normal file

Binary file not shown.