Skip to content

Instantly share code, notes, and snippets.

View TobiX's full-sized avatar

Tobias Gruetzmacher TobiX

View GitHub Profile
@kescherCode
kescherCode / 10-wifionice.sh
Last active October 22, 2025 13:32
NetworkManager-dispatcher script to auto-login into DB ICE WIFI (WIFIonICE).
#!/usr/bin/env bash
## This NetworkManager dispatcher script automatically tries to log into ICE WiFi.
## Sometimes, the first few attempts fail.
if [ "$CONNECTION_ID" = "WIFIonICE" ]; then
case $2 in # status
up)
for (( i = 0; i < 5; i++ )); do
if curl --fail 'https://login.wifionice.de/cna/logon' -X POST; then
@whitequark
whitequark / meow.md
Last active October 10, 2025 19:11
reverse engineering tools

"%" means not tested by me personally.

Reference material

Disassemblers and decompilers

  • Binary Ninja: interactive native code disassembler, decompiler, and debugger
  • when building, replace the BN SDK it downloads with a path to BN API library
@rixx
rixx / comparison.md
Last active June 7, 2025 10:57
Online man pages comparison

Man page browser comparison

There are a bunch of man page browsers available online. They have different data sources, feature sets, and disadvantages, so here is a short comparison table:

Name ls man page No Trackers/Ads Clickable Headings Links² ToC¹ Local Search Noteworthy
Arch manual pages ls
@bjoern-r
bjoern-r / bloom.py
Last active January 23, 2019 17:31 — forked from marcan/bloom.py
Simple Bloom filter implementation in Python 3 (for use with the HIBP password list)
#!/usr/bin/python3
#
# Simple Bloom filter implementation in Python 3
# Copyright 2017 Hector Martin "marcan" <[email protected]>
# Licensed under the terms of the MIT license
#
# Written to be used with the Have I been pwned? password list:
# https://haveibeenpwned.com/passwords
#
# Download the pre-computed filter here (968MB, k=11, false positive p=0.0005):
@ArcaneNibble
ArcaneNibble / asmbits2.asm
Created April 18, 2018 22:33
Calling Linux syscalls from WINE with bonus "Heaven's Gate"
global call_64_from_64
global call_32_from_64
global call_32_from_32
section .text
call_64_from_64:
push rsi
push rdi
mov rax, 1
@smola
smola / k8s-jprofiler-attach.sh
Created March 23, 2018 14:49
Attach JProfiler agent to a JVM running in a Kubernetes pod
#!/bin/bash
set -e
if [[ -z ${K8S_JVM_POD} ]]; then
echo "K8S_JVM_POD not defined"
exit 1
fi
EXEC="kubectl exec ${K8S_JVM_POD}"
CP="kubectl cp ${K8S_JVM_POD}"
@egirault
egirault / Syscan2015Badge.md
Last active November 11, 2024 17:51
Dumping the flash memory of the Syscan 2015 badge

Dumping the flash of the Syscan 2015 badge

The badge of the Syscan 2015 conference included an ARM-based STM32F030R8 processor running some challenges. Although SWD pins are accessible on the badge, some have noted that the STM32 is readout-protected, meaning that it will refuse to dump its flash memory.

Fortunately, two researchers (Johannes Obermaier and Stefan Tatschner) recently published a paper at the WOOT '17 conference, in which they reveal a vulnerability allowing to bypass the readout protection. Their technique allows to dump the flash one DWORD at a time, rebooting the CPU between each access.

I implemented this attack using a BusPirate and the PySWD module. Here is a quick'n dirty PoC to

@tinogomes
tinogomes / DNS_TO_LOCALHOST.markdown
Last active September 18, 2025 11:14
Public DNS Pointing to localhost (127.0.0.1)

Available Public Wildcard DNS Domains pointing to localhost (127.0.0.1)

The best way to safely and securely use local domains pointing to 127.0.0.1 is to edit your local settings (/etc/hosts) and add your own settings. Keep in mind if you want to use subdomains, you need to enter all variations.

Example:

# Adding bottom of your current file /etc/hosts
################# MY LOCAL DOMAINS
127.0.0.1 local.com admin.local.com
127.0.0.1 domain1.com