Skip to content

Instantly share code, notes, and snippets.

View duckythescientist's full-sized avatar

Sean Murphy duckythescientist

View GitHub Profile
@duckythescientist
duckythescientist / decode.py
Created August 26, 2016 16:05
IceCTF Intercepted 2 solution
#!/usr/bin/env python3
"""
encode.pyc is a compiled python file.
The first 2 bytes \x16\x0d == 3350 mean that it's a python3 file.
Python3.4 throws a bad magic number error, but python3.5 works.
After trying a couple python decompilers, I found that unpyc3 worked the best:
```
duck@computer:~/Downloads$ python3.5 ../unpyc3.py encode.pyc
import random
@duckythescientist
duckythescientist / bkpctf16_lilyflac
Last active April 26, 2016 15:59
Writeup for lily.flac of BKPCTF 2016
At first I thought this was a DSP problem. It wasn't. The solution was much simpler.
To start, I listened to the entirety of the song. It's not quite everyone's favorite genre, but I rather enjoyed it. I noticed a short burst of static at the beginning. Static typically means data, but I figured I'd look for other patterns.
Some GNU Radio later showed that there were no obvious patterns in the spectra of the signal or in the relation of the right and left channels.
Initially, I incorrectly converted the file to a raw type. In the converted file, there was obviously some data at the very beginning in the burst of static, but it wasn't readable as anything.
I re-did the conversion to raw and looked again. The static was an ELF for linux x86_64. Thinking it couldn't be that easy, I threw it into IDA. It's a binary that grabs samples from the raw audio and prints the samples out as characters.
@duckythescientist
duckythescientist / mingenerator.py
Last active October 7, 2015 20:30
Generate the /r/shittyprogramming min number script
#!/usr/bin/env python2
import string
'''mingenerator.py
A really quick and dirty answer to :
https://www.reddit.com/r/shittyprogramming/comments/3npktf/finding_the_smallest_number_out_of_4_numbers_with/
Author: duckythescientist
'''
@duckythescientist
duckythescientist / periodic.py
Created July 10, 2015 17:58
Periodically run Python function asynchronously in the background of a script
#!/usr/bin/env python2
from threading import Event, Thread
class Periodic(object):
"""Periodically run a function with arguments asynchronously in the background
Period is a float of seconds.
Don't expect exact precision with timing.
Threading is used instead of Multiprocessing because we need shared memory