# Syntax:  ./disass.py <binary-executable>
#
# disass.py is a disassembly/hacking assistance tool
# It uses a few simple objdump calls to gather GOT, PLT, Symbol, Data and Disassembly information.
# That information is then processed, and the ASM is annotated with information about it
# Most importantly, the ASM is scanned for apparent memory locations, calls, and jmps and the 
# addresses are "looked up" to see where in memory space they fall.  
# Subroutines are chopped up and handled individually, listing local vars and subroutine parameters
#
# Tested only with *nix.
#
# Yes, this may seem elementary, but I found it helpful so here it is.
# @145
#     Converted to Python from Perl in 2/2006

Changelog:
	2.0:
	 Changed design to OOP - nearly a complete rewrite
	 Subroutine analysis: Local vars, Parameters, overall length, naming, "Call logging"
	 Initial JMP and CALL analysis: target, direction (jmp)
	 General Memory lookups and naming
	 Added Variable tagging
	 
	1.1:
	 Translated to Python
	 Added 
	 Bugfixes
	 
	1.0:
	 Initial version in Perl

To Do:
	In-Depth jmp/cmp/test analysis: if's?  while and for loops?
	HTML-ize output
	JMP line-drawing :)  (aka. "process flow analysis")


