ADD week 3

This commit is contained in:
2025-03-12 11:12:06 +01:00
parent bf74dd7e22
commit 84135a321e
35 changed files with 452 additions and 0 deletions

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;
}