Fork this blog on GitHub Fork this blog on GitHub

Brute Forcing One Time Pads - Defcon Mystery Challenge Cryptanalysis Preparation

Brute Forcing One Time Pads - Defcon Mystery Challenge Cryptanalysis Preparation

In preparation for the mystery challenge at Defcon 20 this year, I put together some simple python tools.  I find it quite enjoyable making anti-1057 cryptanalysis tools, so I may be adding more.  This is what I have so far.

Update: This is now on Github

Generate Lookups

Each of these lookups is a dictionary.  The key:value pairs in each dictionary can easily be extended and fed into the crypto functions.

lookup1a = {i : chr(64+i) for i in range(1,27)} #1:A, 2:B, etc
lookupa1 = {chr(64+i):i for i in range(1,27)} #A ...

Continue reading

Customizing Vim to Easily Add Python Breakpoints

I added a few lines to my .vimrc today in my ongoing effort to be more productive and type fewer key strokes.

First I changed the <leader> variable from a backslash to a comma which is easier to type.  The leader variable is useful for creating custom commands.

"Easier mapleader than the default "\"
let mapleader = ","


Instead of manually typing "import ipdb; ipdb.set_trace()", the following vim configuration will insert a python breakpoint in the next line by typing ,p in normal mode.  As the comment explains, ctrl v and then escape must be typed in order to create the characters ...

Continue reading

Python Argparse - Parsing Command Line Scipt Arguments

The python argparse module is quite nifty.  In the past I have used code like this to parse arguments to command line scripts:

import sys

prog_name        = sys.argv[0]

def printUsage():
  print 'Usage: ' + prog_name + ' USEFUL_ARGUMENT'
  print 'This script does something useful with an argument.\n'
  print 'Examples:'
  print '  '+ prog_name + ' USEFUL_ARGUMENT\n'
  exit()


sys.argv.remove(prog_name)
if '-h' in sys.argv or '--help' in sys.argv or len(sys.argv) != 1:
  printUsage()

useful_arg = sys.argv[0]

The argparse module helps to eliminate boilerplate code, provides nice formatting for free, and provides useful features. Here is the same code using the ...

Continue reading