diff --git a/01-VeryEasy1/VE1.txt b/01-VeryEasy1/VE1.txt new file mode 100644 index 0000000..f0ce2b5 --- /dev/null +++ b/01-VeryEasy1/VE1.txt @@ -0,0 +1,14 @@ +1. What compiler was used to build this executable? +GCC + +2. What is the target platform for this executable? +x86_64 + +3. Is this executable linked statically or dynamically? +dynamically linked + +4. What kind of reverse-engineering information is still embedded in this executable? +? + +5. What is the secret password hardcoded into this executable? You need to email this value to pascal+sre25@mod-p.ch before Feb 24th, 2025, 12h00 CET to validate this lab and receive 1 point. ++3kfRmlG1rqb \ No newline at end of file diff --git a/01-VeryEasy1/VeryEasy01.gpr b/01-VeryEasy1/VeryEasy01.gpr new file mode 100644 index 0000000..e69de29 diff --git a/01-VeryEasy1/VeryEasy01.rep/idata/00/00000000.prp b/01-VeryEasy1/VeryEasy01.rep/idata/00/00000000.prp new file mode 100644 index 0000000..04de9e3 --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/idata/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/01-VeryEasy1/VeryEasy01.rep/idata/00/~00000000.db/db.2.gbf b/01-VeryEasy1/VeryEasy01.rep/idata/00/~00000000.db/db.2.gbf new file mode 100644 index 0000000..a304fd2 Binary files /dev/null and b/01-VeryEasy1/VeryEasy01.rep/idata/00/~00000000.db/db.2.gbf differ diff --git a/01-VeryEasy1/VeryEasy01.rep/idata/~index.bak b/01-VeryEasy1/VeryEasy01.rep/idata/~index.bak new file mode 100644 index 0000000..8aa4c06 --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/idata/~index.bak @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:VE1:a801f6f84e95338696086533 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy1/VeryEasy01.rep/idata/~index.dat b/01-VeryEasy1/VeryEasy01.rep/idata/~index.dat new file mode 100644 index 0000000..8aa4c06 --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/idata/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:VE1:a801f6f84e95338696086533 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy1/VeryEasy01.rep/project.prp b/01-VeryEasy1/VeryEasy01.rep/project.prp new file mode 100644 index 0000000..563fc3a --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/project.prp @@ -0,0 +1,6 @@ + + + + + + diff --git a/01-VeryEasy1/VeryEasy01.rep/projectState b/01-VeryEasy1/VeryEasy01.rep/projectState new file mode 100644 index 0000000..fdab5e0 --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/projectState @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/01-VeryEasy1/VeryEasy01.rep/user/00/00000000.prp b/01-VeryEasy1/VeryEasy01.rep/user/00/00000000.prp new file mode 100644 index 0000000..0761e3c --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/user/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/01-VeryEasy1/VeryEasy01.rep/user/00/~00000000.db/db.1.gbf b/01-VeryEasy1/VeryEasy01.rep/user/00/~00000000.db/db.1.gbf new file mode 100644 index 0000000..d0a6077 Binary files /dev/null and b/01-VeryEasy1/VeryEasy01.rep/user/00/~00000000.db/db.1.gbf differ diff --git a/01-VeryEasy1/VeryEasy01.rep/user/~index.bak b/01-VeryEasy1/VeryEasy01.rep/user/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/user/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy1/VeryEasy01.rep/user/~index.dat b/01-VeryEasy1/VeryEasy01.rep/user/~index.dat new file mode 100644 index 0000000..2a5311c --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/user/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:udf_a801f6f84e95338696086533:a801f6f822125986500653561 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy1/VeryEasy01.rep/user/~journal.bak b/01-VeryEasy1/VeryEasy01.rep/user/~journal.bak new file mode 100644 index 0000000..c3a48a4 --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/user/~journal.bak @@ -0,0 +1,2 @@ +IADD:00000000:/udf_a801f6f84e95338696086533 +IDSET:/udf_a801f6f84e95338696086533:a801f6f822125986500653561 diff --git a/01-VeryEasy1/VeryEasy01.rep/versioned/~index.bak b/01-VeryEasy1/VeryEasy01.rep/versioned/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/versioned/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/01-VeryEasy1/VeryEasy01.rep/versioned/~index.dat b/01-VeryEasy1/VeryEasy01.rep/versioned/~index.dat new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/01-VeryEasy1/VeryEasy01.rep/versioned/~index.dat @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy1/E1 b/02-Easy1/E1 old mode 100644 new mode 100755 diff --git a/02-Easy1/E1.txt b/02-Easy1/E1.txt new file mode 100644 index 0000000..bd55768 --- /dev/null +++ b/02-Easy1/E1.txt @@ -0,0 +1,12 @@ +Questions +1. What compiler was used to build this executable? +GCC + +2. What is the target platform for this executable? +x86_64 + +3. Is this executable linked statically or dynamically? +dynamically linked + +4. What is the secret password hardcoded into this executable? You must email this value to pascal+sre25@mod-p.ch before Feb 24th, 2025, 12h00 CET to validate this lab and receive 5 points. +DwMxRPg1cjmVTHdV diff --git a/02-Easy1/Easy01.gpr b/02-Easy1/Easy01.gpr new file mode 100644 index 0000000..e69de29 diff --git a/02-Easy1/Easy01.rep/idata/00/00000000.prp b/02-Easy1/Easy01.rep/idata/00/00000000.prp new file mode 100644 index 0000000..db36ad3 --- /dev/null +++ b/02-Easy1/Easy01.rep/idata/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/02-Easy1/Easy01.rep/idata/00/~00000000.db/db.2.gbf b/02-Easy1/Easy01.rep/idata/00/~00000000.db/db.2.gbf new file mode 100644 index 0000000..0ffa302 Binary files /dev/null and b/02-Easy1/Easy01.rep/idata/00/~00000000.db/db.2.gbf differ diff --git a/02-Easy1/Easy01.rep/idata/~index.bak b/02-Easy1/Easy01.rep/idata/~index.bak new file mode 100644 index 0000000..389d393 --- /dev/null +++ b/02-Easy1/Easy01.rep/idata/~index.bak @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:E1:a801f6f9e1526096743070060 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy1/Easy01.rep/idata/~index.dat b/02-Easy1/Easy01.rep/idata/~index.dat new file mode 100644 index 0000000..389d393 --- /dev/null +++ b/02-Easy1/Easy01.rep/idata/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:E1:a801f6f9e1526096743070060 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy1/Easy01.rep/project.prp b/02-Easy1/Easy01.rep/project.prp new file mode 100644 index 0000000..563fc3a --- /dev/null +++ b/02-Easy1/Easy01.rep/project.prp @@ -0,0 +1,6 @@ + + + + + + diff --git a/02-Easy1/Easy01.rep/projectState b/02-Easy1/Easy01.rep/projectState new file mode 100644 index 0000000..3e4ec4c --- /dev/null +++ b/02-Easy1/Easy01.rep/projectState @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/02-Easy1/Easy01.rep/user/00/00000000.prp b/02-Easy1/Easy01.rep/user/00/00000000.prp new file mode 100644 index 0000000..823289a --- /dev/null +++ b/02-Easy1/Easy01.rep/user/00/00000000.prp @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/02-Easy1/Easy01.rep/user/00/~00000000.db/db.3.gbf b/02-Easy1/Easy01.rep/user/00/~00000000.db/db.3.gbf new file mode 100644 index 0000000..00ecc80 Binary files /dev/null and b/02-Easy1/Easy01.rep/user/00/~00000000.db/db.3.gbf differ diff --git a/02-Easy1/Easy01.rep/user/~index.bak b/02-Easy1/Easy01.rep/user/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/02-Easy1/Easy01.rep/user/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy1/Easy01.rep/user/~index.dat b/02-Easy1/Easy01.rep/user/~index.dat new file mode 100644 index 0000000..2774822 --- /dev/null +++ b/02-Easy1/Easy01.rep/user/~index.dat @@ -0,0 +1,5 @@ +VERSION=1 +/ + 00000000:udf_a801f6f9e1526096743070060:c0a82f6b4fd12437693729253 +NEXT-ID:1 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy1/Easy01.rep/user/~journal.bak b/02-Easy1/Easy01.rep/user/~journal.bak new file mode 100644 index 0000000..4650a26 --- /dev/null +++ b/02-Easy1/Easy01.rep/user/~journal.bak @@ -0,0 +1,2 @@ +IADD:00000000:/udf_a801f6f9e1526096743070060 +IDSET:/udf_a801f6f9e1526096743070060:c0a82f6b4fd12437693729253 diff --git a/02-Easy1/Easy01.rep/versioned/~index.bak b/02-Easy1/Easy01.rep/versioned/~index.bak new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/02-Easy1/Easy01.rep/versioned/~index.bak @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy1/Easy01.rep/versioned/~index.dat b/02-Easy1/Easy01.rep/versioned/~index.dat new file mode 100644 index 0000000..b1e697f --- /dev/null +++ b/02-Easy1/Easy01.rep/versioned/~index.dat @@ -0,0 +1,4 @@ +VERSION=1 +/ +NEXT-ID:0 +MD5:d41d8cd98f00b204e9800998ecf8427e diff --git a/02-Easy1/code.c b/02-Easy1/code.c new file mode 100644 index 0000000..d5b68b4 --- /dev/null +++ b/02-Easy1/code.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include + +ulong SECRETPASSWORD; + +int main(int param_1, int *param_2) { + char* foo = "Hello"; + uint8_t string_equality; + uint8_t output_value; + size_t input_length; + uint8_t local_20; + uint8_t itr; + + local_20 = 1; + if (true /*param_1 == 2*/) { + + itr = 0; + while( true ) { + //input_length = strlen((char *)param_2[1]); // 16 + input_length = strlen(foo); // 16 + if (16 <= itr) break; + local_20 = (local_20 * 3) % 257; + itr = itr + 1; + } + string_equality = strncmp( + // SECRETPASSWORD = 00402e82 + // SECRETPASSWORD + ( (249+226)%257 ) * 8 + // SECRETPASSWORD + (475%257) * 8 + // SECRETPASSWORD + 218 * 8 + // SECRETPASSWORD + 1744 + *(char **)(SECRETPASSWORD + (ulong)((local_20 + 226) % 257) * 8), + foo, + 16 + ); + // => DwMxRPg1cjmVTHdV + if (string_equality == 0) { + fprintf(stderr,"\nCongratulations ! The right password is indeed %s :-)\n\n",param_2[1]); + output_value = 0; + } + else { + fwrite("\nWrong password ! Try again...\n\n", 1, 32, stderr); + output_value = 1; + } + } + else { + fwrite("\nMSE-SRE Challenge E1 --- Enjoy !\n", 1, 34, stderr); + fprintf(stderr, "\nUsage: %s \n\n", *param_2); + output_value = 1; + } + return output_value; +} +