HackTheBox VHDLock Writeup
Explore the basics of cybersecurity in the VHDLock Challenge on Hack The Box. This easy-level Challenge introduces encryption reversal and file handling concepts in a clear and accessible way, perfect for beginners.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/python3
def decoder_4x16(signal):
cases = dict()
val = 1
for n in range(16):
cases[n] = val
val = val << 1
if (signal < 0) or (signal > 15):
return 0
else:
return cases[signal]
def encoder_4x16(signal):
cases = dict()
val = 1
for n in range(16):
cases[val] = n
val = val << 1
return cases[signal]
inputs = []
outputs = [35, 307, 17, 33, 33, 53, 183, 2103]
key = []
for c in "HTB{":
inputs.append((ord(c) & 0xf0) >> 4)
inputs.append(ord(c) & 0x0f)
for i in range(len(inputs)):
new_key = decoder_4x16(inputs[i]) ^ outputs[i]
if new_key not in key:
key.append(new_key)
for k in key:
print(f"0x{k:02X}")
key = [ 0x33, 0x31, 0x31, 0x37 ]
lines = None
outputs = []
flag = ""
with open("out.txt") as f:
lines = f.readlines()
for line in lines:
outputs.append([int(x) for x in line.strip().split(" ")])
for i in range( len(outputs) ):
d1 = encoder_4x16( outputs[i][0] ^ (key[i % 4] ))
d2 = encoder_4x16( outputs[i][1] ^ (key[i % 4] ))
c = (d1 << 4) | d2
flag += chr(c)
print(flag)
Summary
The VHDLock Challenge on Hack The Box is an easy-level challenge focusing on encryption reversal. The Python script derives a key from “HTB{“ using XOR with predefined outputs and uses it to decrypt a message in a file, demonstrating basic encryption techniques and reversal.
This post is licensed under CC BY 4.0 by the author.