I hereby claim:
- I am adrian154 on github.
- I am bithole (https://keybase.io/bithole) on keybase.
- I have a public key whose fingerprint is A30C 4FEE 8843 24A2 2DC7 8ED1 F6B8 7EE1 30D2 D6C5
To claim this, I am signing this object:
| // for parsing rev 6 QT metadata | |
| data = //.. | |
| meta = //.. | |
| readNullStr = (buf, idx) => { | |
| chars = [] | |
| while(buf[idx] != 0) { | |
| chars.push(buf[idx]) | |
| idx++; |
| // README: writeup @ https://blog.bithole.dev/blogposts/ctf-writeups/squarectf-nauseous-process/ | |
| const readline = require("readline"); | |
| const {spawn} = require("child_process"); | |
| let rbp = null, retaddr = null; | |
| let index = null; | |
| let times = 0; // number of times we have seen 0x3d48--the first occurrence is not the real GOT | |
| let times2 = 0; // our current offset within GOT |
| // README: writeup @ https://blog.bithole.dev/blogposts/ctf-writeups/udctf-strong-primes/ | |
| // generate some small primes for trial division | |
| const sieve = new Uint8Array(1e7); | |
| const smallprimes = []; | |
| for(let i = 2; i < sieve.length; i++) { | |
| if(!sieve[i]) { | |
| smallprimes.push(BigInt(i)); | |
| for(let j = i; j < sieve.length; j += i) { |
| // Efficient modular exponentiation using BigInts | |
| // Based on pseudocode from https://en.wikipedia.org/wiki/Modular_exponentiation | |
| // !! NEVER use this method for actual cryptographic applications !! | |
| const powMod = (base, exponent, modulus) => { | |
| if(modulus == 1n) { | |
| return 0n; | |
| } | |
| let result = 1n; |
I hereby claim:
To claim this, I am signing this object:
| package dev.bithole.bpf; | |
| import java.lang.UnsatisfiedLinkError; | |
| import java.io.File; | |
| import java.io.IOException; | |
| import java.lang.ExceptionInInitializerError; | |
| import java.io.InputStream; | |
| import java.io.OutputStream; | |
| import java.io.FileOutputStream; | |
| public class BPF { |
| module.exports = (func, concurrency) => { | |
| let numRunning = 0; | |
| const queue = []; | |
| const invoke = ({args, resolve, reject}) => { | |
| func(...args) | |
| .then(resolve) | |
| .catch(reject) | |
| .finally(() => { |
| // extremely bad ad-hoc pgm parser | |
| // ONLY SUPPORTS 16-BIT PGMs!! | |
| const fs = require("fs"); | |
| module.exports = options => { | |
| let width, height, pixels; | |
| if(options.path) { |
| abydos | |
| abuser | |
| acetyl | |
| actins | |
| adhort | |
| admits | |
| advent | |
| affixt | |
| agents | |
| agrote |
| #!/bin/bash | |
| while curl -sS "https://bruins.admission.ucla.edu/myApplication/Status.aspx" | tac | grep -q 'currently unavailable' | |
| do | |
| sleep 10 | |
| done | |
| while true; | |
| do | |
| echo 'AVAILABLE!!' | |
| echo $'\a' | |
| sleep 3 |