Skip to content

Instantly share code, notes, and snippets.

View mid-kid's full-sized avatar

mid-kid mid-kid

View GitHub Profile
@mid-kid
mid-kid / bits.s
Last active November 5, 2024 23:14
#!/usr/bin/env -S sh -c 'f="$1";shift;sed 1d "$f" | cc -no-pie -o "$f.elf" -xassembler - && ./"$f.elf" "$@"' -
.intel_syntax noprefix
__USER32_CS = 35
__USER_DS = 43
__USER_CS = 51
.global main
main:
push rbp
@mid-kid
mid-kid / noaslr.c
Last active September 14, 2024 19:06
Disable ASLR in linux executable
// Disable ASLR in linux executable
//
// This bit of code will disable ASLR when it's linked into a linux executable.
// It's achieved by setting the process personality (ADDR_NO_RANDOMIZE),
// and re-executing itself.
//
// This can be used on programs that are built from source, as well as on
// existing dynamically linked executables through LD_PRELOAD.
//
// Usage (linked statically with program):
@mid-kid
mid-kid / webfsd.user
Last active June 20, 2024 15:39
Tmux user service for OpenRC
#!/sbin/openrc-run
user="${RC_SVCNAME##*.}"
name="${RC_SVCNAME%.*} daemon for user $user"
pidfile="/var/run/$RC_SVCNAME.pid"
command="/usr/bin/tmux"
command_args="-D"
command_user="$user:$user"
command_background=true
@mid-kid
mid-kid / checktray.c
Last active January 1, 2024 23:00
Check for the presence of an Xembed tray on linux X11
#include <stdlib.h>
#include <stdio.h>
#include <X11/Xlib.h>
// Simple program to check for the presence of an Xembed tray
// Exits with status 0 if the tray exists
int main()
{
Display *d = XOpenDisplay(NULL);
@mid-kid
mid-kid / pdf-full-merge.js
Created October 18, 2023 21:39
Merge all attributes of multiple PDF files using MuPDF
// Merge all attributes of multiple PDF files (pdf-full-merge.js)
// Extended from MuPDF's docs/examples/pdf-merge.js
// Ever had problems with tools that don't copy certain attributes of a PDF?
// This script uses MuPDF to merge/join/concatenate as much as possible, including:
// - bookmarks / outlines / table of contents
// - link attributes of said outlines, such as viewrect and zoom
// - whether outlines appear open or closed by default
// - annotations
// - 3d objects / PDF3D
@mid-kid
mid-kid / mb2gba.s
Last active October 22, 2023 06:50
Convert GBA multiboot game to cartridge format
@ Bootstrap for running a GBA multiboot game stored in a ROM cartridge
@ Assemble with:
@ arm-none-eabi-as -o mb2gba.o mb2gba.s
@ arm-none-eabi-objcopy -O binary mb2gba.o mb2gba.bin
@ base64 mb2gba.bin
start:
@ Copy the game into ram
mov r0, #0x04000000
@mid-kid
mid-kid / dotnet-generate-source.sh
Last active November 21, 2021 17:17
Generate a tarball from dotnet/source-build
#!/bin/sh
set -e
# Script to generate a semi-reproducible dotnet source tarball
# The only differences accross builds are in the git-info/ directory,
# the OfficialBuildId being generated based on the current date.
# See tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/WriteSourceRepoProperties.cs
version="v${1:-5.0.209.1}-SDK"
@mid-kid
mid-kid / hslogin-nstrein
Last active October 30, 2024 14:44
WiFi in de trein auto login script
#!/bin/sh
# Logs in automatically to the "WiFi in de trein" public hotspots, located in
# trains in the Netherlands.
# Requires: curl, sed
set -e
tmp="$(mktemp -d -p '' 'hslogin.XXXXXXXXXX')"
trap "rm -r '$tmp'" EXIT
curl="curl --dns-servers 8.8.8.8,8.8.4.4 -s -v -m 30"
@mid-kid
mid-kid / messagetool.py
Created September 26, 2015 10:34
Unpack and repack Pokemon Super Mystery Dungeon's message.bin
from sys import argv
from struct import unpack, unpack_from, pack
from os import makedirs
from os.path import isdir
from json import dumps, loads
def unpack_wchar_str_from(bytes, pos):
string = b""
@mid-kid
mid-kid / Dummy RSF
Last active July 23, 2023 20:07
Dummy .rsf file for 3DS games
Dummy .rsf file for 3DS games