Skip to content

Instantly share code, notes, and snippets.

@saagarjha
saagarjha / myutr.py
Created January 18, 2021 23:01
Add people to lists on the UTR website
#!/usr/bin/env python3
import getpass
import json
import pathlib
import sys
import urllib.parse
import urllib.request
@saagarjha
saagarjha / fix_debugserver.sh
Last active June 23, 2021 09:42
Allow debugserver to attach to arbitrary processes
#!/bin/sh
set -euo pipefail
cd /tmp
mkdir debug
wget https://raw.githubusercontent.com/sbingner/jailbreak-resources/master/layout/usr/share/entitlements/debugserver.xml
disk="$(hdik ram://100000 | xargs)"
echo "Using new disk at $disk"
newfs_hfs "$disk"
#define _XOPEN_SOURCE 700
#include <ctype.h>
#include <ftw.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// djb2 because it's short
unsigned int hash(char *string) {
unsigned int hash = 5381;
@saagarjha
saagarjha / fixjit.c
Last active July 3, 2024 15:56
Fix applications that use JIT on Apple silicon but don't know about pthread_jit_write_protect_np
// The usual: compile with clang libfixjit.c -arch arm64 -arch arm64e -shared -o libfixjit.dylib, add to DYLD_INSERT_LIBRARIES.
#include <errno.h>
#include <pthread.h>
#include <stdatomic.h>
__attribute__((constructor)) static void fix_jit() {
unsigned long long mask;
__asm__ volatile("mrs %0, s3_4_c15_c2_7" : "=r"(mask): :);
__asm__ volatile("msr s3_4_c15_c2_7, %0" : : "r"(mask & 0xfffffffff0ffffff) :);
@saagarjha
saagarjha / CreateGhidraApp.sh
Last active March 19, 2026 18:38
Creates a Ghidra.app bundle for macOS
#!/bin/sh
set -eu
create_iconset() {
mkdir -p Ghidra.iconset
cat << EOF > Ghidra.iconset/Contents.json
{
"images":
[
@saagarjha
saagarjha / webserver.service
Created October 6, 2019 03:38
systemd service to run a webserver
[Unit]
Description=Python Web Server
After=network.target
[Service]
Type=simple
Restart=always
User=root
WorkingDirectory=/share
ExecStart=/usr/bin/python3 -m http.server 80
@saagarjha
saagarjha / hn_timestamps.py
Created August 6, 2019 16:25
Grab timestamps for all your Hacker News comments
#!/usr/bin/env python3
import json
import re
import urllib.request
if __name__ == "__main__":
comments = json.load(urllib.request.urlopen("https://hacker-news.firebaseio.com/v0/user/saagarjha.json"))["submitted"][::-1]
for comment in comments:
timestamp = json.load(urllib.request.urlopen("https://hacker-news.firebaseio.com/v0/item/" + str(comment) + ".json"))["time"]
@saagarjha
saagarjha / webserver.sh
Created May 26, 2019 06:09
OpenRC init script to run a webserver
#!/sbin/openrc-run
start() {
start-stop-daemon --start --chdir /share --background --exec /usr/bin/python3 -- -m http.server 80
}
stop() {
start-stop-daemon --stop --chdir /share --exec /usr/bin/python3 -- -m http.server
}
@saagarjha
saagarjha / theme.py
Last active October 25, 2021 16:35
iTerm2 Script to change the theme automatically based on the system appearance
#!/usr/bin/env python3
import iterm2
async def set_theme(connection, theme):
# Themes have space-delimited attributes, one of which will be light or dark.
parts = theme.split(" ")
if "dark" in parts:
preset = await iterm2.ColorPreset.async_get(connection, "Fixed Solarized Dark")
@saagarjha
saagarjha / darknano.c
Last active March 22, 2019 04:46
Disables bright colors in nano on macOS
#include <string.h>
int overridden_strncasecmp(const char *s1, const char *s2, size_t n) {
if (n != 6 || strncmp(s2, "bright", n)) {
return strncasecmp(s1, s2, n);
} else {
return !0;
}
}