diff --git a/01-VeryEasy3/VE3.gpr b/01-VeryEasy3/VE3.gpr new file mode 100644 index 0000000..e69de29 diff --git a/01-VeryEasy3/VE3.rep/idata/00/00000000.prp b/01-VeryEasy3/VE3.rep/idata/00/00000000.prp new file mode 100644 index 0000000..ec41e22 --- /dev/null +++ b/01-VeryEasy3/VE3.rep/idata/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/01-VeryEasy3/VE3.rep/idata/00/~00000000.db/db.2.gbf b/01-VeryEasy3/VE3.rep/idata/00/~00000000.db/db.2.gbf new file mode 100644 index 0000000..e0bf839 Binary files /dev/null and b/01-VeryEasy3/VE3.rep/idata/00/~00000000.db/db.2.gbf differ diff --git a/01-VeryEasy3/VE3.rep/idata/~index.bak b/01-VeryEasy3/VE3.rep/idata/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/01-VeryEasy3/VE3.rep/idata/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy3/VE3.rep/idata/~index.dat b/01-VeryEasy3/VE3.rep/idata/~index.dat new file mode 100644 index 0000000..cf8ee4e --- /dev/null +++ b/01-VeryEasy3/VE3.rep/idata/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:VE3:a2e40c5a22540267163090739 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy3/VE3.rep/idata/~journal.bak b/01-VeryEasy3/VE3.rep/idata/~journal.bak new file mode 100644 index 0000000..46b0990 --- /dev/null +++ b/01-VeryEasy3/VE3.rep/idata/~journal.bak @@ -0,0 +1,2 @@ +IADD:00000000:/VE3 +IDSET:/VE3:a2e40c5a22540267163090739 diff --git a/01-VeryEasy3/VE3.rep/project.prp b/01-VeryEasy3/VE3.rep/project.prp new file mode 100644 index 0000000..563fc3a --- /dev/null +++ b/01-VeryEasy3/VE3.rep/project.prp @@ -0,0 +1,6 @@ + + + + + + diff --git a/01-VeryEasy3/VE3.rep/projectState b/01-VeryEasy3/VE3.rep/projectState new file mode 100644 index 0000000..bdbf7a4 --- /dev/null +++ b/01-VeryEasy3/VE3.rep/projectState @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/01-VeryEasy3/VE3.rep/user/00/00000000.prp b/01-VeryEasy3/VE3.rep/user/00/00000000.prp new file mode 100644 index 0000000..d6ee8e9 --- /dev/null +++ b/01-VeryEasy3/VE3.rep/user/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/01-VeryEasy3/VE3.rep/user/00/~00000000.db/db.1.gbf b/01-VeryEasy3/VE3.rep/user/00/~00000000.db/db.1.gbf new file mode 100644 index 0000000..fbb6742 Binary files /dev/null and b/01-VeryEasy3/VE3.rep/user/00/~00000000.db/db.1.gbf differ diff --git a/01-VeryEasy3/VE3.rep/user/~index.bak b/01-VeryEasy3/VE3.rep/user/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/01-VeryEasy3/VE3.rep/user/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy3/VE3.rep/user/~index.dat b/01-VeryEasy3/VE3.rep/user/~index.dat new file mode 100644 index 0000000..1f92cca --- /dev/null +++ b/01-VeryEasy3/VE3.rep/user/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:udf_a2e40c5a22540267163090739:a2e40c594c340888329008539 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy3/VE3.rep/user/~journal.bak b/01-VeryEasy3/VE3.rep/user/~journal.bak new file mode 100644 index 0000000..df657b6 --- /dev/null +++ b/01-VeryEasy3/VE3.rep/user/~journal.bak @@ -0,0 +1,2 @@ +IADD:00000000:/udf_a2e40c5a22540267163090739 +IDSET:/udf_a2e40c5a22540267163090739:a2e40c594c340888329008539 diff --git a/01-VeryEasy3/VE3.rep/versioned/~index.bak b/01-VeryEasy3/VE3.rep/versioned/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/01-VeryEasy3/VE3.rep/versioned/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy3/VE3.rep/versioned/~index.dat b/01-VeryEasy3/VE3.rep/versioned/~index.dat new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/01-VeryEasy3/VE3.rep/versioned/~index.dat @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy3/VE3.txt b/01-VeryEasy3/VE3.txt new file mode 100644 index 0000000..da14f7d --- /dev/null +++ b/01-VeryEasy3/VE3.txt @@ -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 diff --git a/01-VeryEasy3/code.c b/01-VeryEasy3/code.c new file mode 100644 index 0000000..7266c01 --- /dev/null +++ b/01-VeryEasy3/code.c @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include + +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 \n\n",*param_2); + uVar3 = 1; + } + return uVar3; +} diff --git a/02-Easy3/E3.gpr b/02-Easy3/E3.gpr new file mode 100644 index 0000000..e69de29 diff --git a/02-Easy3/E3.rep/idata/00/00000000.prp b/02-Easy3/E3.rep/idata/00/00000000.prp new file mode 100644 index 0000000..04b893f --- /dev/null +++ b/02-Easy3/E3.rep/idata/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/02-Easy3/E3.rep/idata/00/~00000000.db/db.2.gbf b/02-Easy3/E3.rep/idata/00/~00000000.db/db.2.gbf new file mode 100644 index 0000000..abfa04e Binary files /dev/null and b/02-Easy3/E3.rep/idata/00/~00000000.db/db.2.gbf differ diff --git a/02-Easy3/E3.rep/idata/~index.bak b/02-Easy3/E3.rep/idata/~index.bak new file mode 100644 index 0000000..87c429e --- /dev/null +++ b/02-Easy3/E3.rep/idata/~index.bak @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:E3:a2e40c5a09540945517759134 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy3/E3.rep/idata/~index.dat b/02-Easy3/E3.rep/idata/~index.dat new file mode 100644 index 0000000..87c429e --- /dev/null +++ b/02-Easy3/E3.rep/idata/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:E3:a2e40c5a09540945517759134 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy3/E3.rep/project.prp b/02-Easy3/E3.rep/project.prp new file mode 100644 index 0000000..563fc3a --- /dev/null +++ b/02-Easy3/E3.rep/project.prp @@ -0,0 +1,6 @@ + + + + + + diff --git a/02-Easy3/E3.rep/projectState b/02-Easy3/E3.rep/projectState new file mode 100644 index 0000000..b46e09d --- /dev/null +++ b/02-Easy3/E3.rep/projectState @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/02-Easy3/E3.rep/user/00/00000000.prp b/02-Easy3/E3.rep/user/00/00000000.prp new file mode 100644 index 0000000..8aab64c --- /dev/null +++ b/02-Easy3/E3.rep/user/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/02-Easy3/E3.rep/user/00/~00000000.db/db.1.gbf b/02-Easy3/E3.rep/user/00/~00000000.db/db.1.gbf new file mode 100644 index 0000000..f5815c3 Binary files /dev/null and b/02-Easy3/E3.rep/user/00/~00000000.db/db.1.gbf differ diff --git a/02-Easy3/E3.rep/user/~index.bak b/02-Easy3/E3.rep/user/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/02-Easy3/E3.rep/user/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy3/E3.rep/user/~index.dat b/02-Easy3/E3.rep/user/~index.dat new file mode 100644 index 0000000..949c087 --- /dev/null +++ b/02-Easy3/E3.rep/user/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:udf_a2e40c5a09540945517759134:c0a82ee89d758705805429400 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy3/E3.rep/user/~journal.bak b/02-Easy3/E3.rep/user/~journal.bak new file mode 100644 index 0000000..5afd991 --- /dev/null +++ b/02-Easy3/E3.rep/user/~journal.bak @@ -0,0 +1,2 @@ +IADD:00000000:/udf_a2e40c5a09540945517759134 +IDSET:/udf_a2e40c5a09540945517759134:c0a82ee89d758705805429400 diff --git a/02-Easy3/E3.rep/versioned/~index.bak b/02-Easy3/E3.rep/versioned/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/02-Easy3/E3.rep/versioned/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy3/E3.rep/versioned/~index.dat b/02-Easy3/E3.rep/versioned/~index.dat new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/02-Easy3/E3.rep/versioned/~index.dat @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy3/E3.txt b/02-Easy3/E3.txt new file mode 100644 index 0000000..32f9c42 --- /dev/null +++ b/02-Easy3/E3.txt @@ -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 diff --git a/02-Easy3/code.c b/02-Easy3/code.c new file mode 100644 index 0000000..35e0be2 --- /dev/null +++ b/02-Easy3/code.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include + + +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 \n\n",*param_2); + ret = 1; + } + return ret; +} diff --git a/02-Easy3/genKey.c b/02-Easy3/genKey.c new file mode 100644 index 0000000..daed551 --- /dev/null +++ b/02-Easy3/genKey.c @@ -0,0 +1,82 @@ +#include +#include +#include +#include +#include +#include + +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; +} diff --git a/E3_16 b/E3_16 new file mode 100644 index 0000000..96d50ed Binary files /dev/null and b/E3_16 differ