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 May 2, 2025 08:49
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;
};
@DavidBuchanan314
DavidBuchanan314 / r1_api.md
Last active April 10, 2025 16:35
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});

@BadMagic100
BadMagic100 / i2cpp_ghidra.md
Last active May 3, 2025 07:16
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
@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 April 29, 2025 08:31
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";
#!/usr/bin/sudo ruby
#
# revealer.rb -- Deobfuscate GHE .rb files.
#
# This is simple:
# Every obfuscated file in the GHE VM contains the following code:
#
# > require "ruby_concealer.so"
# > __ruby_concealer__ "..."