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 / 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 / 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 / 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 / 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 / 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