npm install
$ frida QuakeSpasm --enable-jit -l _agent.js
$ curl -s http://localhost:1337/stats | jq
$ curl -s -X POST http://localhost:1337/attack | jq
/** Async version of Array.prototype.reduce() | |
* await reduce(['/foo', '/bar', '/baz'], async (acc, v) => { | |
* acc[v] = await (await fetch(v)).json(); | |
* return acc; | |
* }, {}); | |
*/ | |
export async function reduce(arr, fn, val, pure) { | |
for (let i=0; i<arr.length; i++) { | |
let v = await fn(val, arr[i], i, arr); | |
if (pure!==false) val = v; |
'use strict'; | |
const slowCallback = new NativeCallback(value => { | |
console.log('slowCallback hit'); | |
return 43; | |
}, 'int', ['int']); | |
const fastCallback = Memory.alloc(Process.pageSize); | |
Memory.patchCode(fastCallback, 128, code => { | |
const cw = new X86Writer(code, { pc: fastCallback }); |
const XState = require('xstate') | |
const { Machine, interpret } = XState | |
const { raise } = XState.actions | |
/* | |
run from cli using: | |
node xstate-onentry-timing-bug.js [sync|async|raise] | |
*/ |
// ==UserScript== | |
// @name IPA for translate.google | |
// @namespace https://gist.github.com/adielBm/21762fe5e964071cb820a0c46896da34 | |
// @version 2024-06-27 | |
// @description Convert phonetic transcription to IPA on Google Translate | |
// @author adielBm | |
// @match https://translate.google.com/* | |
// @grant none | |
// @updateURL https://gist.githubusercontent.com/adielBm/21762fe5e964071cb820a0c46896da34/raw | |
// @downloadURL https://gist.githubusercontent.com/adielBm/21762fe5e964071cb820a0c46896da34/raw |