Bin Voter

Bin Voter reconstructs correct binary files from multiple corrupted firmware dumps by implementing a voting algorithm across byte positions. The tool compares corresponding bytes from multiple binary files and selects the most frequently occurring value at each position. This Python utility is designed for firmware recovery scenarios where multiple partial or corrupted dumps are available but no single dump is completely intact. Bin Voter can recover clean firmware images by leveraging statistical analysis across multiple corrupted sources.

July 13, 2025 · 1 min

DPRK.team

DPRK.team is a satirical website that parodies authoritarian cybersecurity organizations through the fictional “Glorious People’s Cybersecurity Directorate.” The site presents cybersecurity services using exaggerated revolutionary rhetoric and propaganda-style messaging that mimics state-controlled digital security agencies. The project serves as a humorous commentary on totalitarian approaches to cybersecurity and digital sovereignty. The website includes typical corporate sections like services, team profiles, and past work, all delivered through an over-the-top ideological lens that lampoons authoritarian cybersecurity practices and terminology.

July 1, 2025 · 1 min

SOCAT and WireGuard: a perfect pair for DPI Bypass

Tunneling WireGuard over TLS using SNI Domain Fronting There are numerous ways to get unrestricted egress on a restricted network. Here I will demonstrate how to use socat to tunnel a UDP connection over a TLS tunnel with a faked SNI domain in order to bypass network restrictions. This technique works on a restricted network that allows outbound TLS traffic to at least a single domain, but only checks the domain in the TLS Client Hello SNI field, and not the destination IP address. I have found this to be a common setup on many captive portal or restricted networks making use of a DPI firewall to block all other network traffic. ...

May 23, 2025 · 4 min

Converting Sunbeam Heated Mattress Pad to ESPHome

This post outlines the process to replace a Tuya radio module with one running ESPHome to fully control a heated mattress pad locally with Home Assistant. I purchased a Sunbeam Heated Mattress Pad for those cold winter nights. The mattress pad controller connects to WiFi and has a remote control app. However, it has a safety feature that limits functionality. The app can only adjust heat levels and turn the pad off unless you’ve recently pressed a physical button on the controller, effectively limiting the app to changing heat levels and turning the device off. ...

February 26, 2025 · 10 min

GPM2Spotify History

GPM2Spotify History converts Google Play Music listening history data to Spotify-compatible JSON format. The Python scripts process HTML activity files exported from Google Play Music and generate structured JSON data that can be used with modern music tracking and analysis tools. The conversion tool helps users migrate their historical listening data from the discontinued Google Play Music service to formats compatible with current music platforms and personal analytics tools. It parses activity HTML exports and transforms the data into standardized JSON structures for further processing.

February 13, 2025 · 1 min

Influencing Linux IP Source Address Selection

When creating a socket unless manually specified, the OS will automatically determine the source address to use. However, the OS’s default choice may not always be desired. Source Address Selection allows for influencing the sources address chosen by the OS. What is Source Address Selection? When a host with multiple routable IP addresses sends a packet to another host, it needs to determine which of its local addresses to use as the source “from” address. ...

December 11, 2024 · 7 min

Scroller

Scroller is a web application that displays customizable scrolling text messages in fullscreen mode. The single-page application allows users to configure text content, fonts, colors, scroll speed, and background themes before launching a fullscreen display. The application includes URL hash-based message saving, automatic text scaling to fit screens, and responsive design with light/dark mode support. It’s designed for creating dynamic text displays for presentations, signage, or any scenario requiring large-scale scrolling text output.

October 25, 2024 · 1 min

Caddy Signal Proxy

Caddy Signal Proxy implements a Signal TLS proxy using the Caddy web server and the caddy-l4 plugin. The configuration enables Signal messaging clients to connect through a TLS proxy for improved privacy or to bypass network restrictions. The deployment uses Docker Compose with a minimal configuration that can be integrated into existing Caddy setups. The proxy handles TLS termination and forwarding for Signal’s messaging infrastructure, requiring only a domain name configuration to operate.

September 25, 2024 · 1 min

Creating a Mikrotik BGP.Tools Session

When running a network with its own ASN, you will likely end up spending some time working with BGP. Knowing how your peer networks connect can help with your own network planning. BGP.Tools is a service that maps out different networks and the routes between them by having networks opt to provide bgp.tools with a BGP session sharing their exportable routes. This guide will walk you through setting up a BGP.Tools session with a Mikrotik router running RouterOS 7. ...

February 11, 2024 · 2 min

Portquiz

Portquiz tests outbound TCP and UDP connectivity to remote hosts by attempting connections across specified port ranges. The tool identifies which ports can successfully establish connections through network infrastructure such as firewalls, NAT devices, and proxies. The program can detect deep packet inspection (DPI) filtering and other network-level blocking mechanisms. It supports testing individual ports or scanning complete port ranges, with cross-platform compatibility across Windows, macOS, and Linux systems.

January 16, 2024 · 1 min