Skip to content

Instantly share code, notes, and snippets.

View junefrench's full-sized avatar

June French junefrench

  • San Francisco, CA
  • 05:36 (UTC -08:00)
View GitHub Profile
@junefrench
junefrench / gencues.py
Last active February 23, 2016 13:04
Generate X32 Snippets for Musical Theatre
"""
Instructions for use
Change channel_count and dca_count as appropriate. (Note that this always assumes that you are using the lowest-numbered channels and dcas for cue control)
Change channels to the list of names of channels you want under cue control.
Change cues to your list of cues, following the examples. the comment in cues documents the syntax.
"""
@junefrench
junefrench / RE_GEX.md
Last active August 29, 2015 14:19
Writeup of RE GEX challenge from PlaidCTF 2015

REG EX

Writeup

This is a writeup of the reversing challenge 'REG EX' from PlaidCTF 2015.

The challenge provided two files: a python server program and a crazy-huge regex (see regex.txt). The python server is very basic: it simply listens for a connection, prompts for a 'key', and then checks whether the key matches the regex. It will then send the flag, but only if the provided key did NOT match the regex.

After the initial shock of looking at many screenfulls of regex, it actually breaks down into simple chunks. The regex consists of a single group which must match the entire string (^(...)$), containing a number of alternatives. Because we need to find a string which does not match the regex, we need to ensure that none of the alternatives match our string. The first alternative (.*[^plaidctf].*) will match any string which contains any character not in 'plaidctf', so we know our solution will contain only those characters. The second two alternatives (.{,170}|.{172,}) will match any string