Skip to content

Instantly share code, notes, and snippets.

View maple3142's full-sized avatar

maple maple3142

View GitHub Profile
@maple3142
maple3142 / hook.c
Last active April 1, 2024 16:22
generic LD_PRELOAD shell hook example
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
__attribute__((constructor)) void init() {
putenv("LD_PRELOAD=");
system("sh");
exit(0);
}
// gcc -shared -fPIC hook.c -o hook.so -ldl -Os -s -Wall
@maple3142
maple3142 / a.js
Created March 31, 2024 03:47
wasm debug helper functions
const mem = new Uint8Array(Module.asm.memory.buffer)
function encode(str) {
return new TextEncoder().encode(str)
}
function decode(arr) {
return new TextDecoder().decode(arr)
}
@maple3142
maple3142 / example.conf
Created March 14, 2024 04:47
Cloudflare warp example config that works in WSL2
[Interface]
PrivateKey = REDACTED
Address = 172.16.0.2/32
MTU = 1280
[Peer]
PublicKey = REDACTED
# 0.0.0.0/0 - (0.0.0.0/8, 10.0.0.0/8, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16, 240.0.0.0/4, 162.159.192.1/32, 1.1.1.1/32) + 172.16.0.0/24
# 162.159.192.1 is for engage.cloudflareclient.com
# reference: https://github.com/ViRb3/wgcf/issues/42, https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/
@maple3142
maple3142 / server.sh
Last active March 14, 2024 06:55
one line webserver, tested in zsh and bash
while true; do mkfifo pipe; stdbuf -o0 cat pipe | nc -lv 7777 | ( read line; reqpath="$(echo "$line" | sed -nE 's/GET ([^ ]*) HTTP.*/\1/p')"; echoparam="$(echo "$reqpath" | cut -d '?' -f2 | awk 'BEGIN { RS="&"; FS="=" } { if ($1 == "echo") print $2 }')"; response=$echoparam; if [[ $reqpath == '/' ]]; then response='<form><input name="echo"><button>Echo</button></form>'; fi; printf 'HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n'; printf '%s' "$response" ) > pipe; rm pipe; done
{"elements":[{"text":"Water","emoji":"💧","discovered":false},{"text":"Fire","emoji":"🔥","discovered":false},{"text":"Wind","emoji":"🌬️","discovered":false},{"text":"Earth","emoji":"🌍","discovered":false},{"text":"Steam","emoji":"💨","discovered":false},{"text":"Mud","emoji":"💩","discovered":false},{"text":"Dust","emoji":"🌫️","discovered":false},{"text":"Planet","emoji":"🪐","discovered":false},{"text":"Steampunk","emoji":"🕯️","discovered":false},{"text":"Cloud","emoji":"☁️","discovered":false},{"text":"Volcano","emoji":"🌋","discovered":false},{"text":"Mountain","emoji":"🏔️","discovered":false},{"text":"Snow","emoji":"❄️","discovered":false},{"text":"Snowball","emoji":"❄️","discovered":false},{"text":"Snowman","emoji":"☃️","discovered":false},{"text":"Eruption","emoji":"🌋","discovered":false},{"text":"Lava","emoji":"🌋","discovered":false},{"text":"Stone","emoji":"🪨","discovered":false},{"text":"Rock","emoji":"🪨","discovered":false},{"text":"Clay","emoji":"🏺","discovered":false},{"text":"Boulder","emoji":"🪨","dis
@maple3142
maple3142 / compress.py
Created January 11, 2024 09:38
SECCON CTF Final 2023 - babywaf
#!/usr/bin/env python
from __future__ import print_function
import argparse
import binascii
import functools
import struct
import sys
import zlib
@maple3142
maple3142 / README.md
Last active March 8, 2024 08:47
Rootless Tailscale

Running tailscaled

Download static tailscaled binary here

TAILSCALED_SOCKET="/tmp2/$USER/tailscaled.sock"
TAILSCALED_STATE="tailscaled.state"
./tailscaled --tun=userspace-networking --state="$TAILSCALED_STATE" --socket "$TAILSCALED_SOCKET"
@maple3142
maple3142 / test.py
Created October 14, 2023 03:37
Python 3.11 bytecode assemble
from types import FunctionType, CodeType
import dis
def assemble(ops):
cache = bytes([dis.opmap["CACHE"], 0])
ret = b""
for op, arg in ops:
opc = dis.opmap[op]
ret += bytes([opc, arg])
@maple3142
maple3142 / export_pdf.sh
Last active March 6, 2024 06:25
Convert markdown to pdf using pandoc and chromium
#!/bin/sh
source=$1
dest=$2
if [ -z "$source" ] || [ -z "$dest" ]; then
echo "Usage: $0 <source> <dest>"
exit 1
fi
tmpmd="$(mktemp tmp-XXXXXX.md)"
tmphtml="$(mktemp tmp-XXXXXX.html)"
from Crypto.Util.number import *
from hashlib import sha256
import random
# https://eprint.iacr.org/2018/623.pdf
# vdf implementation using rsa as hidden order group
n = getPrime(512) * getPrime(512)
T = 2**20