################################
#                              #
#     LEVEL (1), ANS           #   
#                              #
################################

Here are the steps to complete this level.

[1] - You can type in a string, or simply hit enter.

[KEY CONCEPT] - The program then performs a loop over each character in the input string, and replaces it with the same character XORed by 4.

[KEY CONCEPT] - Next, you will be prompted to input the modified string. The program will run a string comparison (strcmp) on the modified password and your guess. You will need to:

[2] - Either hit enter again if you didn't type anything in the first place (since an empty string XORed by 4 is still an empty string).

[2] - Or, if you did type something, you will need to enter the characters you typed but XORed by 4. For instance, if you typed "1", the corresponding answer would be "5" (since 1 XOR 4 = 5). Note that if you entered ASCII characters instead of numbers, you will need to consult an ASCII table and possibly use a calculator (a Python 3 interpreter can also be helpful for this).


ill leave the ascii table here uts also at https://www.rapidtables.com/code/text/ascii-table.html

ascii contains 255 characters.. for this entire crackme you， Should only need the first 127

Dec 	Hex 	Alt 	Esc 	Character 		Dec 	Hex 	Character 	Dec 	Hex 	Character 	Dec 	Hex 	Character
0 	0x00 	  	Ctrl-@ 	NUL (Null) 		32 	0x20 	[Space] 	64 	0x40 	@ 		96 	0x60 	`
1 	0x01 	☺ 	Ctrl-A 	SOH 			33 	0x21 	! 		65 	0x41 	A 		97 	0x61 	a
2 	0x02 	☻ 	Ctrl-B 	STX 			34 	0x22 	" 		66 	0x42 	B 		98 	0x62 	b
3 	0x03 	♥ 	Ctrl-C 	ETX 			35 	0x23 	# 		67 	0x43 	C 		99 	0x63 	c
4 	0x04 	♦ 	Ctrl-D 	EOT 			36 	0x24 	$ 		68 	0x44 	D 		100 	0x64 	d
5 	0x05 	♣ 	Ctrl-E 	ENQ 			37 	0x25 	% 		69 	0x45 	E 		101 	0x65 	e
6 	0x06 	♠ 	Ctrl-F 	ACK 			38 	0x26 	& 		70 	0x46 	F 		102 	0x66 	f
7 	0x07 	• 	Ctrl-G 	BEL 			39 	0x27 	' 		71 	0x47 	G 		103 	0x67 	g
8 	0x08 	◘ 	Ctrl-H 	BS Backspace 		40 	0x28 	( 		72 	0x48 	H 		104 	0x68 	h
9 	0x09 	○ 	Ctrl-I 	TAB \t 			41 	0x29 	) 		73 	0x49 	I 		105 	0x69 	i
10 	0x0A 	◙ 	Ctrl-J 	LF Line Feed \n 	42 	0x2A 	* 		74 	0x4A 	J 		106 	0x6A 	j
11 	0x0B 	♂ 	Ctrl-K 	VT 			43 	0x2B 	+ 		75 	0x4B 	K 		107 	0x6B 	k
12 	0x0C 	♀ 	Ctrl-L 	FF Form Feed 		44 	0x2C 	, 		76 	0x4C 	L 		108 	0x6C 	l
13 	0x0D 	♪ 	Ctrl‑M 	CR Carriage Return \r 	45 	0x2D 	- 		77 	0x4D 	M 		109 	0x6D 	m
14 	0x0E 	♫ 	Ctrl-N 	SO 			46 	0x2E 	. 		78 	0x4E 	N 		110 	0x6E 	n
15 	0x0F 	☼ 	Ctrl-O 	SI 			47 	0x2F 	/ 		79 	0x4F 	O 		111 	0x6F 	o
16 	0x10 	► 	Ctrl-P 	DLE 			48 	0x30 	0 		80 	0x50 	P 		112 	0x70 	p
17 	0x11 	◄ 	Ctrl-Q 	DC1 			49 	0x31 	1 		81 	0x51 	Q 		113 	0x71 	q
18 	0x12 	↕ 	Ctrl-R 	DC2 			50 	0x32 	2 		82 	0x52 	R 		114 	0x72 	r
19 	0x13 	‼ 	Ctrl-S 	DC3 			51 	0x33 	3 		83 	0x53 	S 		115 	0x73 	s
20 	0x14 	¶ 	Ctrl-T 	DC4 			52 	0x34 	4 		84 	0x54 	T 		116 	0x74 	t
21 	0x15 	§ 	Ctrl-U 	NAK 			53 	0x35 	5 		85 	0x55 	U 		117 	0x75 	u
22 	0x16 	▬ 	Ctrl-V 	SYN 			54 	0x36 	6 		86 	0x56 	V 		118 	0x76 	v
23 	0x17 	↨ 	Ctrl‑W 	ETB 			55 	0x37 	7 		87 	0x57 	W 		119 	0x77 	w
24 	0x18 	↑ 	Ctrl-X 	CAN 			56 	0x38 	8 		88 	0x58 	X 		120 	0x78 	x
25 	0x19 	↓ 	Ctrl-Y 	EM 			57 	0x39 	9 		89 	0x59 	Y 		121 	0x79 	y
26 	0x1A 	→ 	Ctrl-Z 	SUB (EOF) 		58 	0x3A 	: 		90 	0x5A 	Z 		122 	0x7A 	z
27 	0x1B 	← 	Ctrl-[ 	ESC (Escape) 		59 	0x3B 	; 		91 	0x5B 	[ 		123 	0x7B 	{
28 	0x1C 	∟ 	Ctrl-/ 	FS 			60 	0x3C 	< 		92 	0x5C 	\ 		124 	0x7C 	|
29 	0x1D 	↔ 	Ctrl-] 	GS 			61 	0x3D 	= 		93 	0x5D 	] 		125 	0x7D 	}
30 	0x1E 	▲ 	Ctrl-^ 	RS 			62 	0x3E 	> 		94 	0x5E 	^ 		126 	0x7E 	~
31 	0x1F 	▼ 	Ctrl-_ 	US 			63 	0x3F 	? 		95 	0x5F 	_ 		127 	0x7F 	DEL


I started by typing the string "RE". Now, I need to modify it by XORing each character by 4. For instance, let's consider the character "R". Its hexadecimal value is 0x52 (with 0x indicating that it is a hex number). To modify it, I can use Python 3 and run the following code snippet: test = 0x52 ^ 0x4 ; hex(test).

This code snippet first XORs the decimal equivalent of 0x52 (which is the ASCII value of "R") by 4, then converts the result back to hexadecimal using the hex() function. As a result, "R" (0x52) is changed to "V" (0x56), and "E" (0x45) becomes "A" (0x41).
