Skip to content

Instantly share code, notes, and snippets.

View knot126's full-sized avatar

Knot knot126

View GitHub Profile
@knot126
knot126 / fractureoftheprism.md
Last active November 17, 2025 00:42
Prism Launcher crack patches

Prism Launcher Crack

These are some simple binary patches to Prism Launcher that crack the official release builds. You can use something like hexed.it to apply the patches.

Using Hexed.it to apply patches

  1. Open the main prismlauncher.exe from the official download (make sure it's the right build!)
  2. Paste the location of the patch into the "Go to" box and click enter
  3. With the cursor at the right location, type in the patch bytes. They should overwrite the bytes that used to be there.
  4. Export the modified binary and replace the uncracked EXE with the one you just patched.
#!/usr/bin/env python3
"""
Download all Minecraft versions' data for archival purposes
"""
import urllib.parse, urllib.request
import os
import json
from pathlib import Path
#!/usr/bin/env python
from pathlib import Path
from sys import argv
# I would rather do a symbol lookup, but this works too :P
uncrackedbytes = bytes([0xF3, 0x0F, 0x1E, 0xFA, 0x41, 0x54, 0x4C, 0x8D, 0x67, 0x58])
patch = b"\xb8\x01\x00\x00\x00\xc3"
binary = Path(argv[1]).read_bytes()
@knot126
knot126 / bcm4321_dell_linux_2023.md
Created October 18, 2023 15:09
How to make dell minicard with BCM4321 work on linux

How to make BCM4321 dell wifi card work on linux

  1. Download this file and extract the .o file: https://github.com/knot126/bcm4321/blob/main/broadcom-wl-6.30.163.46.tar.bz2
  2. Enter a root shell (e.g. sudo su) in the folder where you extracted the .o to
  3. Run b43-fwcutter -w /usr/lib/firmware ./broadcom-wl-6.30.163.46.wl_apsta.o (extracts the firmware to the proper location)
  4. Reboot and the wifi should work
@knot126
knot126 / passthrough.py
Created June 2, 2023 05:56
Awful hack for making Karen's cydia repo work on iOS 5 after SSL errors
"""
Run this locally (make sure firewall is off) and add http://<YOUR-IP>:8000/ to Cydia.
"""
from http.server import BaseHTTPRequestHandler, HTTPServer
import time
import requests
host = "https://cydia.akemi.ai"
serverPort = 8000
@knot126
knot126 / fa_docs.md
Last active November 6, 2025 21:40
Unofficial fur affinity docs

UPDATE 2025-11-06: I'm making this public for historical interest, but a lot of the information here is now outdated. For example, you can now change display names and the settings have probably been changed following updates to how birthdates are handled.

Unoffical Fur Affinity documentation

This is an attempt to document how Fur Affinity works internally. This document might contain errors or be outdated by the time you are reading it, so please do not fully trust this document.

Relevant information

Fur Affinity does not have an official API, and it is not clear if they will add one. Almost every action of the site occurs via a GET or url-encoded POST request, including even things that would be better suited to an API, like managing folders.

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTA3OSIsInBhdGgiOiJcL2ZcL2NjMDU5OTgwLTk4MDctNGM3Ni04Mzc3LTAzOWUyODQ5ZjY5NlwvZGY4ajlsbC0wYmY5YTYzOC04OWQ3LTRhZjMtYjhlMC00YWVjNmNkYjUyNWYucG5nIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.kDpKYP4xSJ5kImTPUxKTqXxXxAfsQOmNErs9NxA4UW0
{"typ":"JWT","alg":"none"}
eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0
{"sub":"urn:app:","iss":"urn:app:","obj":[[{}]],"aud":["urn:service:file.download"]}
eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3t9XV0sImF1ZCI6WyJ1cm46c2VydmljZTpmaWxlLmRvd25sb2FkIl19
def lcg(a, x, b, m):
return (a * x + b) % m
def main():
print("Please select parameters to test with.")
a = eval(input("a = "))
b = eval(input("b = "))
m = eval(input("m = "))
s = eval(input("s_0 = "))
import simpleaudio
import math
import struct
import random
def mix(a, b):
return (a + b) - (a * b)
def sample_sine(freq, i, volume = 0.3, rate = 44100):
"""
import requests
import urllib.parse
MODELS = ["photo", "standard", "cartoon", "light"]
MODES = ["cpu", "gpu"]
infull = urllib.parse.quote(b"C:\\Users\\User\\SomeFile.png")
folder = urllib.parse.quote(b"C:\\Users\\User\\OutputAI\\")
size = urllib.parse.quote(str(64 * 64))