Projects

Hardware
Software
Opensource


linux wine launcher with automatic vulkan acceleration
linux wine game/app installer
linux server monitoring daemon (golang prometheus)
linux vps error reporting (golang prometheus)
install firefox on windows 10 using powershell
postscreen whitelist/blacklist using spf
extract mailserver list from spf
torbrowser update checker ( golang net/http )
automated linux dotfiles
gatsby new post cli in nodejs (no deps)
use medium-zoom in vuejs & nuxtjs
unsplash json api search using react.js
golang api server using net/http & chi
rust async server using tokio
QEMU ARMv7 emulation in linux
osint tool for inspecting tls for subdomains
firefox profiles for windows using powershell
firefox profile tools
torjail - sandboxed torbrowser
inspect http request headers using go net/http
unsplash json api search using vanilla javascript
linux audio device switcher with ladspa multiband eq
nodejs api server template using express
Chromium OS & Cloudready on QEMU
BT HomeHub 5a OpenWrt
Acer Chromebook C7/C710 Coreboot
Android Testing Tools (ROM Patching)
ARM64 Bootloader Testing (U-Boot)
BlackWidow Macro Keys In Linux
Cloudflare Iptables
Netgear wnr2200 OpenWrt USB Patches & extroot
Mail Console
Mail CLI Admin Tools (python & mysql)
Archlinux package migration scripts
Google Chrome Ramdisk Cache
Windows Firewall Blocklists (powershell)
Windows 10 Tweak Tools (powershell)
Linux Logout GUI Using python tkinter (tk-logout)
Web App Using lastfm API In php (lastfm-feed)
Wordpress Security Modules
Samsung i5700 Android dalvik-relocate
Mac OSX Backup Script with Growl Notification
Linux Backup with Notification
Wordpress Picasa Gallery
Wordpress Modules

Github

Opensource projects listed above can be found on my Github.

Javascript Python PHP Rust Bash Go C Powershell

Linux Wine Launcher

Allows automated installation of windows applications or games on linux by setting up a custom wine prefix/env with required libraries & features.

  • creates WINEPREFIX for each app
  • downloads & installs libraries (eg: vulkan)
  • per app configuration
  • optional features: vulkan, FPS overlay, RAM usage, logging
  • support for WINEESYNC
  • pre-defined installer for specific apps/games

Created as an alternative to GUI apps which have a lot of dependencies.
There are some GUI tools which do the same but are dependant on gnome-desktop & do not work on tiling window managers like i3.

Postfix Postscreen Whitelist

CLI app to automate whitelisting (or blacklisting) of known email servers by iterating over spf records.

Built to work with domains that have email servers spanning over multiple spf lists.
(see google.com example below)

    โ””โ”€โ”€ google.com
        โ””โ”€โ”€ v=spf1 include:_spf.google.com
            โ””โ”€โ”€ v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com

App whitelists IPV4 & IPV6 ranges using CIDR blocks.

BT HomeHub 5a OpenWrt

hh5a_img

Hardware modifications to allow connection & booting over UART
Custom firmware built from development/testing branch of OpenWrt

Raspberry Pi Zero

rasp_zero

I'm using the Raspberry Pi Zero as it has low power usage & has the GPIO required.
The Raspberry Pi Zero draws 120mA under load which is a huge difference to the Raspberry Pi 3 which draws 750mA

  • SPI
  • I2C
  • UART
  • JTAG
  • 3.3V Power
  • 5V Power

These little boards can be useful for flashing & debugging hardware.
They also work well for testing RF security using an expansion board (RFID RC522).

Acer Chromebook C7/C710 Coreboot

Coreboot opensource firmware image, allowing the chromebook to boot into linux using different payloads eg: seabios, grub2, tianocore (UEFI).

arch_ssd_chromebook

Building coreboot is pretty easy, the instructions on the wiki are quite clear.
Just make sure you know what you are doing as you could brick your chromebook.

For more info on building coreboot read my blog post Building Coreboot in 2020

I have a repo on github for my linux configs specific to the c710.

Android Testing Tools

Tools to help with testing, debugging & reverse engineering of android devices.

Main Components

  • bootloader dumping tool (boot.bin)
  • device tree extraction script (dtb.img)
  • Android ROM extraction script

The ROM extraction script allows the ability to dump a full ROM to external storage, the script segments the storage into sections making it easier to look at applications & system. This tool makes the job of security testing easier & also helps in the creation of custom ROM patches. (eg: enable google widevine patch)

ARM64 Bootloader Security Testing

arm64_serial

Testing U-Boot related security on specific ARM64 implementations & debugging using serial interface.

It is possible read & write to U-Boot from within android without any need for root on many of these devices (not just development boards). It is also possible to inject custom scripts & binaries directly to the bootloader.

arm64_cpuinfo

Some simple examples of this are injecting scripts into preboot or bootcmd. Both result in scripts being run before the target OS.

BlackWidow Macro Keys In Linux

bwidow_header

This is a C program which sends the init code from Razer windows proprietary drivers to initialize the 'macro' keys on Razer BlackWidow keyboards on Linux.

Initialization code was obtained using Wireshark USB Capture.

Razer BlackWidow Macro Keys v1
Razer BlackWidow Device Found
Sending data:
    00 00 00 00 00 02 00 04
    02 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    04 00
Transmitted: 90

Source code is available on github under MIT license.


torjail - sandboxed torbrowser

Download, verify & run torbrowser in a sandbox utilizing seccomp policies and Xephyr.

features

  • downloads torbrowser from torproject.org
  • verifies package before extraction
  • sets up a working env
  • runs tor in a sandbox
  • runs in /tmp/ so any changes are not saved
  • runs in its own xephyr dwm session
  • has sha256 verification
  • works on 32bit & 64bit linux
  • stores everything in ~/.torjail
  • version checking & updating
  • gpg verification of downloads

tor_screen

Source code available on github under MIT license.


Netgear wnr2200 OpenWrt

wnr2200_img

Custom Patch to allow usb storage
Custom script to initialize usb at boot to allow overlay pivot
Custom build of OpenWrt

mail console

Extension of mail server cli tools, designed to be easier to use with the possibility of expanding it to include live mail server statistics.

mail_console

Windows Powershell Tools

powershell banner

Powershell is great for automating things using group policies etc on large networks. I have a few opensource projects on github to help Windows users & administrators. Some examples:

  • Windows Firewall Blocklists - use IP blocklists
  • Windows 10 Update - ask before installing updates
  • Windows 10 Disable Telemetry
  • Windows Hosts Blocklists
  • Windows 10 Disable Services
  • Windows 10 Disable Scheduled Tasks

mail server cli tools

Command Line Tools for administering my mailserver stack. Written in python, allows a admin to create/delete mailboxes, domains, subdomains & aliases. Also has the ability to do a password reset on users mailboxes using urandom. (passwords are saved with salted hash & users can change with web interface once logged in)

./query.py
*****************************************************************
        ./query.py - equk.co.uk
*****************************************************************
    Copyright (C) 2014  Bradley Walden
*****************************************************************
    This tool will query the postfix MySQL database
*****************************************************************

Email Addresses
===============
e: postmaster@debian.test
e: testing@debian.test
e: test@debian.test

Virtual Domains
===============
d: debian.test
d: local.test

Email Aliases
===============
a: admin@debian.test ==> postmaster@debian.test