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