Skip to content

Instantly share code, notes, and snippets.

@zhangyoufu
zhangyoufu / ipv6-address-space.md
Last active June 20, 2026 23:17
IPv6 Address Space

IPv6 Address Space

::/128               Unspecified Address
  ::1/128            Loopback Address
  ::ffff:0:0/96      IPv4-mapped Address
64:ff9b::/96         IPv4-IPv6 Translate
64:ff9b:1::/48       IPv4-IPv6 Translate
100::/64             Discard-Only Address Block
0200::/7             OSI NSAP-mapped prefix set (deprecated)
@zhangyoufu
zhangyoufu / gist:3ca7f93f821505dc3f4dde09f901f620
Created May 11, 2026 12:11
get download URL for single component within Visual Studio, given chman/vsman URL
f() {
local URL
URL=$1
if [ "${URL%.chman}" != "${URL}" ]; then
echo >&2 "downloading chman from ${URL}"
URL=$(curl -fsS "${URL}" | jq -r '.channelItems[0].payloads[0].url')
fi
if [ "${URL%.vsman}" = "${URL}" ]; then
echo "invalid URL_vsman"
return 1
@zhangyoufu
zhangyoufu / Makefile
Created April 28, 2026 05:04
log argv/envp/stdin/stdout/stderr to pcap
main: main.c
cc -O2 -Wall -std=c11 -DTARGET_BINARY='"'/usr/lib/apt/methods/sqv.real'"' -o $@ $<
@zhangyoufu
zhangyoufu / apt_install.py
Last active April 26, 2026 02:17
apt/apt-get install solution, including all dependency, shell version make use of --print-uris argument, python version is more versatile (Note: snapshot.debian.org requires https, either install ca-certificates or put one at /usr/lib/ssl/cert.pem)
import apt
import apt_pkg
import os
import tempfile
SNAPSHOT = '20260421T000000Z'
ARCH = 'arm64'
PACKAGES = [
'binutils',
'gcc-x86-64-linux-gnu',
@zhangyoufu
zhangyoufu / gist:5814814
Created June 19, 2013 14:36
JNIEnv functions table, helpful when reverse engineering JNI
#include <stdio.h>
#include <stdarg.h>
#include <stddef.h>
typedef int jint;
typedef int jclass;
typedef int jobject;
typedef int jmethodID;
typedef int jfieldID;
typedef int JNIEnv;
@zhangyoufu
zhangyoufu / gist:eb429891f07d593a956476cf483e3944
Created January 28, 2026 07:18
generate random subnet from fc00::/7 ULA prefix
import ipaddress
import random
def generate_random_ula_prefix(prefix_length: int, L: int = 1) -> ipaddress.IPv6Network:
return ipaddress.IPv6Network((((0xfc|L)<<120)|(random.getrandbits(prefix_length-8)<<(128-prefix_length)), prefix_length))
for prefix_length in range(8, 129):
print(generate_random_ula_prefix(prefix_length))
@zhangyoufu
zhangyoufu / pppd-lcp-rtt-log-parser.py
Created January 25, 2026 06:30
A Python script to parse and monitor Round-Trip Time (RTT) log files produced by pppd's `lcp-rtt-file` configuration directive.
#!/usr/bin/env python3
from typing import Optional
import argparse
import ctypes
import datetime
import mmap
import sys
import time
@zhangyoufu
zhangyoufu / ctypes_from_readonly_buffer.py
Created January 24, 2026 16:37
CPython: fake readwrite buffer from readonly buffer
import ctypes
import mmap
# https://stackoverflow.com/a/34096544
def fake_readwrite_buffer(obj: object) -> memoryview:
address = ctypes.c_void_p()
length = ctypes.c_ssize_t()
ctypes.pythonapi.PyObject_AsReadBuffer(ctypes.py_object(obj), ctypes.byref(address), ctypes.byref(length))
return ctypes.memoryview_at(address.value, length, readonly=False)
@zhangyoufu
zhangyoufu / itertools.go
Created January 5, 2026 03:26
itertools-like Cycle and Take in Go
package main
import "iter"
func Cycle[T any](items []T) func(func(T) bool) {
return func(yield func(T) bool) {
for {
for _, item := range items {
if !yield(item) {
return
@zhangyoufu
zhangyoufu / find_wifi_channel.py
Created December 28, 2025 02:48
find country code in regdb-wireless
#!/usr/bin/env python3
from typing import Optional, TypeAlias
import dbparse
import enum
class Flags(enum.IntFlag):
NO_OFDM = 1<<0
NO_CCK = 1<<1
NO_INDOOR = 1<<2
NO_OUTDOOR = 1<<3