H-T8 CTF 2026

Get all CTF tools installed with a single command using DPM.

You need Linux, macOS, or a Linux VM on Windows (e.g. VirtualBox). DPM does not run on Windows natively.

1 Install DPM

Run this in your terminal.

sh curl -sL https://dpm.fi/install.sh | sh

Want to see what DPM does before committing? Run dpm bubble first — it creates a temporary environment where you can try things out. Everything disappears when you exit.

2 Apply the CTF profile

This installs all the tools you'll need for the event. Version-pinned, verified, ready to go.

sh dpm apply HT8CTF2026

3 Start solving

Everything is installed. Below are starting checklists and tool hints for each category.

Using YouTube to learn the tools is encouraged. A short tutorial video often gets you up and running faster than reading the docs — search for the tool name plus tutorial or CTF.


If You Don't Know Where To Start

These are not challenge hints. They are first steps for each category: how to inspect what you were given, pick tools, and avoid random guessing.

Cryptography

  1. Identify what kind of text you have before choosing a tool.
  2. If it looks encoded, try common encodings first: Base64, hex, and binary.
  3. If symbols are used, identify the cipher alphabet or family.
  4. If one decode gives nonsense, the challenge may have multiple layers.
  5. CyberChef and dCode are good first stops for simple transformations.

Forensics

  1. Inspect the file before opening it normally.
  2. Run file to check what it really is.
  3. Run strings and check metadata with exiftool.
  4. Look for embedded files with binwalk.
  5. For packet captures, identify protocols and conversations first.

Steganography

  1. Assume the interesting data may not be visible at first glance.
  2. Check metadata and look for appended or embedded files.
  3. For images, inspect color channels and bit planes.
  4. For audio, view a spectrogram instead of only listening.
  5. If you find a password-protected file, try common wordlists.

Pwn

  1. Run the program locally and learn what input it accepts.
  2. Check binary protections with checksec.
  3. Look at strings, symbols, and decompiled code.
  4. Use GDB to confirm what changes when your input gets longer.
  5. Look for input length bugs, hidden functions, and control-flow changes.

Reverse Engineering

  1. Run the program first and note what blocks the flag.
  2. Use file, strings, and symbols to learn what kind of binary it is.
  3. Open it in Ghidra or a disassembler to find comparisons and branches.
  4. For data arrays, inspect how values are transformed before printing.
  5. For patching challenges, change the decision instead of rewriting the whole program.

Web

  1. Click through the app normally before attacking it.
  2. Inspect URLs, parameters, cookies, forms, and error messages.
  3. Try changing IDs, filenames, and other values the app trusts.
  4. Use DevTools or a proxy to see what the browser sends.
  5. Think in requests, not just pages.

OSINT

  1. Collect visible evidence before searching randomly.
  2. Note landmarks, text, logos, languages, timestamps, and usernames.
  3. Search exact phrases and unique visual details.
  4. Use reverse image search when the image itself is the clue.
  5. Check archives if content may have changed or disappeared.

Misc

  1. Identify every provided file before assuming a technique.
  2. Look for patterns in filenames, ordering, dimensions, and metadata.
  3. Try simple transformations before complex tooling.
  4. If there are many similar files, compare them instead of opening each one manually.
  5. Run dpm list if you are unsure what tools are available.
Optional Challenge Hints

Open these only if you have tried the category checklist and still do not know where to begin. These are starter hints, not walkthroughs.

Cryptography

Turn of the Tide

Try common encodings first. After the first readable result, the title may describe the next movement.

Dead Men Tell No Tales

Identify the symbol alphabet or cipher family first. The text you get may still have one classic lock left.

Shipwreck Cove

Is there a way to communicate with only short and long signals? The gaps matter too: they separate pieces of the message.

Hoist the Colours

Line breaks are meaningful. For short versus long, think about how the words are spoken, not only written.

The Quartermaster's Map

The map may carry more than visible pixels. Inspect metadata, then consider file-carving tools such as binwalk.

Good tools: exiftool, binwalk

Forensics

Captain's Log

Images can carry readable data beyond pixels. A simple file inspection command may be enough.

Good tools: strings, exiftool

Uncharted Territory

When many files look alike, compare their properties and look for the one that does not match the pattern.

Dead Men Tell No Packets

Start by identifying protocols. Useful files and key material may be split across different conversations.

Good tools: tshark, Wireshark

Steganography

Least Significant Pirate

The title points to which bits are worth inspecting. Try viewing image bit planes or LSB data.

locked chest

Start with metadata. If you extract something that is still locked, switch to archive and wordlist tools.

Good tools: exiftool, binwalk, john

Drunken Sailor

For audio stego, listening is only one view. Try looking at the sound over frequency and time.

Misc

python-as-a-service

This calculator evaluates Python, not only arithmetic. After code execution, inspect the environment like a small Linux box.

python-as-a-service-revenge

Compare what the filter blocks with what Python can still execute without using those blocked syntax nodes.

Cut by Cutlass

All provided files are pieces of one larger image. Use visual alignment instead of hidden-byte tools.

School Cargo

Start by identifying protocols and conversations in the capture. Look for transferred payloads or unusual data.

Good tools: tshark, Wireshark

Pwn

99 Flowdoubloons

The exact amount of cargo matters. Compare input length, reserved space, and what pressing Enter sends.

Good tools: gdb, pwntools

Dead man's Return

Check how the program reads your name. Inspect symbols before assuming you need shellcode.

Good tools: gdb, pwntools, ghidraRun

Reverse Engineering

Patchwork

If the right choice still refuses to open the lock, inspect the branch that decides whether the lock opens.

Good tools: ghidraRun, gdb, radare2

shifter

Look at the integer array and how each value is transformed before printing.

Good tools: strings, ghidraRun

Web

Blackbeard's Ledger

Treat the tracking ID as something the database might interpret. Error messages can be useful evidence.

Good tools: browser DevTools

Quartermaster's Locker

After logging in, pay attention to how documents are identified and whether ownership is checked.

Good tools: browser DevTools

Smuggler's Cove Files

The file viewer receives a filename from the URL. Think carefully about what can count as a filename.

Good tools: browser DevTools

Crow's Nest Proxy

The preview request is made by the server, not your browser. Start from the internal status page and follow clues.

Good tools: browser DevTools

DOMbeard's Booty

Client-side JavaScript controls most of the behavior. Inspect state and attributes with browser DevTools.

Good tools: browser DevTools

OSINT

Pirate Bench

Compare stable landmarks across the images. Once you know the area, nearby map features can narrow the exact place.

dig dig dig

The first page is not the end. Follow connected usernames and remember that the internet can preserve old pages.

Good tools: sherlock, browser

Buccaneer Burgers

Identify the exact branch or location, not only the brand. The timestamp is visible in the scene.

Gap Marks The Spot

The filenames are part of the puzzle. Identify all three viewpoints, then think geometrically.

Captain's Quarters

Use transport and road details before searching hotel names. The correct name may have changed.

Royal Lanterns

Identify the city and park first. These lanterns are tied to a public design project, and only named people count.


Tools By Category

Once you know what kind of problem you are looking at, these tools can help with the actual inspection and solving.

Cryptography

Hash cracking, cipher analysis, and encoded data. You might need to identify hash types or brute-force weak keys.

hashcat docs ↗

GPU-accelerated hash cracker. Identify the hash type first, then pick the right mode.

hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
john docs ↗

Versatile password cracker. Good at auto-detecting hash formats.

john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

Forensics

Packet captures, file carving, and hidden data in files. Look at what's inside, not just at the surface.

tshark docs ↗

Wireshark on the command line. Filter and inspect packet captures.

tshark -r capture.pcap -Y "http.request"
binwalk docs ↗

Scans files for embedded data and extracts hidden content.

binwalk -e suspicious_file.bin
exiftool docs ↗

Reads all metadata from a file. Check for comments, GPS data, hidden fields.

exiftool image.jpg

Steganography

Data hidden in images, audio, or other media. Metadata and embedded content are worth checking.

exiftool docs ↗

Start here — metadata often reveals what's been embedded or modified.

exiftool -v2 image.png
binwalk docs ↗

Scans for files hidden inside other files — archives, images, data appended after EOF.

binwalk --signature image.png

Pwn

Binary exploitation. Analyze the binary, find the vulnerability, write the exploit.

gdb docs ↗

Step through execution, inspect memory, set breakpoints. Essential for understanding what a binary does.

gdb ./challenge
pwntools docs ↗

Python library for writing exploits. Handles connections, packing, shellcode.

from pwn import *; p = remote('host', 1337)
ghidra docs ↗

Decompiler with a GUI. Import a binary and read the decompiled C output to understand the logic.

ghidraRun
radare2 docs ↗

CLI disassembler and debugger. Fast for quick analysis when you don't need a full GUI.

r2 -A ./challenge

Reverse Engineering

Compiled programs, hidden checks, patching, and data transformations. Understand what the program does before changing it.

ghidra docs ↗

Decompiler with a GUI. Good for finding checks, branches, constants, and hidden functions.

ghidraRun
radare2 docs ↗

CLI disassembler and patching tool. Useful when you want to inspect or change a small branch.

r2 -Aw ./challenge

Web

Web application vulnerabilities. Inspect requests, test inputs, look at what the server reveals.

nmap docs ↗

Scan for open ports and services. Useful for recon before attacking a web target.

nmap -sV -sC target-ip

OSINT

Open-source intelligence. Metadata in files can reveal more than you'd expect, and a username often turns up across the rest of the internet.

exiftool docs ↗

Check GPS coordinates, author info, software used, timestamps — anything the creator left behind.

exiftool -G -a photo.jpg
sherlock docs ↗

Hunts a username across hundreds of social platforms. Useful when a challenge gives you a handle and asks where else the person shows up.

sherlock username

Misc

Anything goes. The right tool depends on the challenge — explore what you have available.

Run dpm list to see everything installed. Sometimes the answer is a tool you didn't expect to need.


Useful online tools

Some challenges are easier to solve in the browser. These are worth bookmarking.

CyberChef

Encode, decode, encrypt, compress, and transform data — drag and drop operations into a chain.

Online hash lookup. Paste a hash and check if it's already been cracked.

dCode

Cipher identifier and solver. Handles Caesar, Vigenere, substitution, and many more.

HexEd.it

Browser-based hex editor. Useful for inspecting and patching file headers.

Upload an image and run multiple stego analysis tools at once — zsteg, steghide, exiftool, binwalk and more.


Quick reference

How did it go?

Help us improve DPM — it takes less than two minutes. Your feedback is anonymous.