Skip to content

Instantly share code, notes, and snippets.


Wladimir J. van der Laan laanwj

  • The Netherlands
View GitHub Profile
laanwj /
Last active Sep 23, 2020
gitian buildling on debian 9.5

Some changes are needed to build on debian because of the switch of the guest OS to bionic.

lxc that comes with debian is not high enough version to support bionic (the minimum is 2.1.1), so need to build from scratch.

debootstrap that comes with debian will give the following error:

    $ bin/make-base-vm --lxc --suite bionic --arch amd64                                                                                              
    E: No such script: /usr/share/debootstrap/scripts/bionic
laanwj /
Last active Sep 14, 2020
Decrypt router configuration
#!/usr/bin/env python3
# W.J. van der Laan 2017, distributed under MIT license
import binascii
import base64
import json
import os, sys
from Crypto import Random
from Crypto.Cipher import AES
KEY = binascii.a2b_hex(b'fffffbffeffffbfffbbfffbfdbfff7ffffffffffffffdfffff7fffffbfffffff')
laanwj /
Last active Aug 10, 2020
tools to write (block) data to png files and vice versa
#!/usr/bin/env python3
# Distributed under the MIT software license
import binascii, struct, sys, io, argparse
from PIL import Image
IMG_WIDTH = 512 # could be made adaptive...
MIN_HEIGHT = 4 # minimum height of image; twitter won't let us upload anything smaller
def div_roundup(x,y):
# Copyright (c) 2013 W.J. van der Laan
# parts sourced from jackjack's (
# Distributed under the MIT/X11 software license
from bitcoin.base58 import CBase58Data
from binascii import b2a_hex, a2b_hex
import struct
import hashlib
import scrypt, random
from Crypto.Cipher import AES
laanwj /
Last active Jul 17, 2020
Bitcoin network stats script
#!/usr/bin/env python3
import sys
from test_framework.authproxy import AuthServiceProxy, JSONRPCException
import time
import os
datadir = os.getenv("DATADIR", os.path.join(os.getenv('HOME'), '.bitcoin'))
with open(os.path.join(datadir,'.cookie'),'r') as f:
cookie =
Wladimir van der Laan 2016. This document is in the public domain.
BLATSTING reverse-engineering notes. Based on files from the EQGRP free dump,
more specifically in Firewall/BLATSTING/BLATSTING_201381/LP/lpconfig.
BLATSTING is described as "A firewall software implant that is used with EGREGIOUSBLUNDER
If true, it's interesting how this implant can target both vendors. Presumably they both use the same Linux
View differences.diff
|| main
testnet=1 || test
testnet=0 || main
notestnet=1 || main
regtest=1 || regtest
regtest=0 || main
noregtest=1 || main
- testnet=0 testnet=1 || main
+ testnet=0 testnet=1 || test
- notestnet=1 testnet=1 || main
laanwj / test.c
Last active Nov 5, 2019
Test fixed-point number formatting
View test.c
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <limits.h>
void print_number_f(double x) {
double y = x;
int c = 0;
if (y < 0.0) {
y = -y;
laanwj / 99-aithra-serial.rules
Last active Oct 9, 2019
udev rules example for lots of serial devices (put in /etc/udev/rules.d)
View 99-aithra-serial.rules
# serial devices
# get attributes using: udevadm info -a -n /dev/ttyUSBn
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ATTRS{product}=="Flyswatter2", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="serial/flyswatter-jtag"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ATTRS{product}=="Flyswatter2", ENV{ID_USB_INTERFACE_NUM}=="01", SYMLINK+="serial/flyswatter-tty"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ATTRS{product}=="Dual RS232-HS", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="serial/unleashed-jtag"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ATTRS{product}=="Dual RS232-HS", ENV{ID_USB_INTERFACE_NUM}=="01", SYMLINK+="serial/unleashed-tty"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ATTRS{product}=="Quad RS232-HS", ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="serial/zodiac-jtag0"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", ATTRS{product}=="Quad RS232-HS", ENV{ID_USB_IN
You can’t perform that action at this time.