mirror of
https://git.qwik.space/left4code/Levels_Crackme.git
synced 2026-04-21 06:10:43 +05:30
62 lines
4.2 KiB
Plaintext
62 lines
4.2 KiB
Plaintext
################################
|
||
# #
|
||
# 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).
|