Post

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.