Skip to content

Instantly share code, notes, and snippets.

@AzureFlow
AzureFlow / rotateString.js
Created March 24, 2025 03:58
Akamai BMP native (`libakamaibmp.so`) string concealment
const RotateDirection = Object.freeze({
Left: -1,
Right: 1,
});
// Init the ASCII character mapping table (equivalent to the large local_* arrays)
// /** @type {string[]} */
// const charMap = [];
// for(let i = 32; i < 127; i++) {
// // Skip " ' \ \x7F
@t3dotgg
t3dotgg / try-catch.ts
Last active March 10, 2026 03:34
Theo's preferred way of handling try/catch in TypeScript
// Types for the result object with discriminated union
type Success<T> = {
data: T;
error: null;
};
type Failure<E> = {
data: null;
error: E;
};
function detectTamperMonkey(callback) {
/**
* Detect tampermonkey via stack dumping
*/
const createElem = document.createElement;
document.createElement = function() {
try {
throw new Error();
} catch (e) {
const stackTrace = e.stack;
@DavidBuchanan314
DavidBuchanan314 / r1_api.md
Last active February 1, 2026 09:32
Rabbit R1 Unofficial API Docs

The Rabbit R1 uses a few custom APIs to talk to The Cloud™. Almost nothing happens on-device, and all the AI magic happens on servers.

Consequently, you don't really need the physical device.

TLS Client Fingerprinting

In lieu of an authentication scheme, Rabbit's servers attempt to verify device authenticity by checking the TLS client's JA3 fingerprint, presumably enforced by AWS WAF.

If your TLS client doesn't match an expected fingerprint, you'll get HTTP 403 errors. This fingerprint works:

@AzureFlow
AzureFlow / arkose_mobile_docs.md
Last active December 18, 2024 00:52
Arkose mobile fingerprinting reverse engineering.

Arkose Mobile Info

TL;DR:

  1. Collect Android environment information + (string escape + base64 encode)
  2. Send data to fingerprintData function in WebView via WebView.evaluateJavascript
  3. Forward data sent into the WebView to arkoseEnforcement.dataResponse(dataCollection) in the JavaScript api.js
  4. Emit the event from api.js to enforcement.version_hash.js

Le.emit("data_response", {message: "data_response", data: eventData, key: Jt.config.publicKey});

@aamiaa
aamiaa / CompleteDiscordQuest.md
Last active March 12, 2026 04:11
Complete Recent Discord Quest

Complete Recent Discord Quest

Note

This does not works in browser for quests which require you to play a game! Use the desktop app to complete those.

How to use this script:

  1. Accept a quest under the Quests tab
  2. Press Ctrl+Shift+I to open DevTools
  3. Go to the Console tab
  4. Paste the following code and hit enter:
@BadMagic100
BadMagic100 / i2cpp_ghidra.md
Last active March 2, 2026 14:10
Instructions to get a useful decompilation out of an il2cpp game. Or, "I spent hours to trial and error so hopefully you won't have to"

Decompiling IL2CPP Games with Il2CppDumper and Ghidra

This guide will walk through how to decompile/reverse engineer IL2CPP games for modding usage.

Note: expect this entire process to take upwards of an hour. Have something ready to do on the side while waiting for processing to finish.

Prerequisites

  1. Download Il2CppDumper
KFZUS-F3JGV-T95Y7-BXGAS-5NHHP
T3ZWQ-P2738-3FJWS-YE7HT-6NA3K
KFZUS-F3JGV-T95Y7-BXGAS-5NHHP
65Z2L-P36BY-YWJYC-TMJZL-YDZ2S
SFZHH-2Y246-Z483L-EU92B-LNYUA
GSZVS-5W4WA-T9F2E-L3XUX-68473
FTZ8A-R3CP8-AVHYW-KKRMQ-SYDLS
Q3ZWN-QWLZG-32G22-SCJXZ-9B5S4
DAZPH-G39D3-R4QY7-9PVAY-VQ6BU
KLZ5G-X37YY-65ZYN-EUSV7-WPPBS
@AzureFlow
AzureFlow / Colors.php
Created January 23, 2021 06:43
Easy way to apply colors to console output in PHP
<?php
class Colors
{
public static function getRich(string $string, string $foregroundColor = null, string $backgroundColor = null): string
{
$coloredString = '';
if(!empty($foregroundColor))
{
@MeguminSama
MeguminSama / Discord Experiments.js
Last active February 4, 2026 17:55
Discord Experiments.js
let cache; webpackChunkdiscord_app.push([["wp_isdev_patch"], {}, r => cache=r.c]);
var UserStore = Object.values(cache).find(m => m?.exports?.default?.getUser).exports.default;
var actions = Object.values(UserStore._dispatcher._actionHandlers._dependencyGraph.nodes);
var user = UserStore.getCurrentUser();
actions.find(n => n.name === "ExperimentStore").actionHandler.CONNECTION_OPEN({
type: "CONNECTION_OPEN", user: {flags: user.flags |= 1}, experiments: [],
});
actions.find(n => n.name === "DeveloperExperimentStore").actionHandler.CONNECTION_OPEN();
webpackChunkdiscord_app.pop(); user.flags &= ~1; "done";