MICHAEL COLBURN
Software Engineer & Reverse Engineer
*********@*****.***
SKILLS
-Fast & efficient programmer with strong debugging and reverse engineering
skills.
-Experienced in real-time programming to control hardware or multiple
systems with and without user interfaces.
-Extensive experience reverse engineering Windows 95/98 O/S -includes
debugging the kernel, modifications and patches.
Languages: Java, Visual Studio C++, C, Javascript, HTML, x86 Assembly,
6502 Assembly, PHP.
Host Systems: Windows 9x, XP and 7, Linux, MS/DOS, Netware 3.x, UNIX,
SUN
Target Systems: Windows 9x, XP and 7, Linux, On-Time RTOS, 8086, 6502
based systems, Netware 3.x, UNIX, MS/DOS
Tools: Eclipse, SVN, OllyDbg, IDA Pro, Windows DDK, SoftIce,
SDK, MFC, Self made P2P network parser.
EMPLOYMENT EXPERIENCE
Kontiki, Inc. April
2012 - July 2013
Use Java, Javascript, HTML, PHP, Apache Modules, MySQL, MongoDB (Map/Reduce
and Aggregation), SOAP-UI, and Spring Beans to collect, filter, migrate,
and present analytics data collected by the real-time video distribution
system. Development on Windows 7 system with production systems running
Linux.
Skylink Design, Inc. Feb
2008 - April 2012
Participated in development of cell phone diagnostic and certification
software platform.
Extended and maintained the Qualcomm ICD protocol diagnostic
interface/controller Windows DLL, written in C++, used to interact with
cell phones during acceptance testing. This included event logging, event
insertion, non-volatile memory access, screen capture, serial
communications handling, TCP/IP handling, polling, and asynchronous event
handling.
Created Windows Mobile 6 agent and Android Linux agent to emulate these
same functions as they were not available on these smart phones.
Managed 2 other engineers.
Macrovision, Inc. Aug
2004 - Dec 2007
Developed solutions for anti-piracy services offered to movie studios for
big budget releases.
Reverse engineered P2P network protocols for systems such as eDonkey2000,
Ares, BitTorrent, Kad, and Gnutella 1&2.
Developed parsing software for analysis of protocol dumps and developed
software to interact with these networks.
Authored patent on eMule interdiction and co-authored patent for P2P
interdiction techniques.
Deltabeta In-Flight, Inc. Feb
2001 - Oct 2002
Developed system software for real time on-demand in-flight entertainment
system. My contributions were:
Designed, implemented and released real-time bridging system between in-
flight entertainment systems and Airbus and Boeing aircraft systems to
provide real-time data sharing. This included Public Address System audio,
real-time maintenance management, navigation data and cabin seat light and
attendant control and status.
Creation of interfaces for audio chip and real-time MPEG encoding chip in a
real-time operating system and distribution
of said audio and video data throughout on-board aircraft network.
Developed AtoD / DtoA board drivers for 8 simultaneous input/output audio
streams on Windows NT
Developed intra-systems Triple DES cryptography for secure entertainment
media protection.
This work required significant interaction with hardware development staff
to debug the chip implementations on the board. Using the On-Time RTOS,
Visual C++ was used with Borland C++ debugger. On Windows NT 4.0, C++ work
was accomplished with Visual C++/MFC or MS Visual Basic.
Concurrent Controls, Inc. as Senior Software Engineer
Nov 1996 - Dec 2000
Part of team that developed "Applica" a multi-user Windows 9.X operating
system using Microsoft's single user version as the base. This product
allowed multiple users (up to 32) to utilize the Windows OS from a single
PC running Applica.
Most of my work was done without Microsoft Windows source code or
documentation. My contributions were:
Modification of networking and printing subsystems of the Window 95/98 OS.
This required reverse engineering the existing VxD's and DLL's of Microsoft
Windows 95/98, modifying them to add data space to their structures and to
patch the code to behave in ways compatible with multi-user functionality.
Investigate and repair Windows OS failures caused by VXD's designed for
single user use. This required investigation into, and reproduction of,
EXACT causes of system failures followed by analysis of problem so as to
patch system to avoid problem scenarios.
Debug new hardware for multi-user and serial products for Windows NT and
then modify existing drivers to support that hardware. This required
working with hardware engineer to provide debug and test code to illuminate
problem conditions.
This required extensive work with the NuMega SoftIce for Windows 9x and NT.
On Windows 9x, assembly language work was done with MASM 6.11 and the
Win9x development kits. Work on NT was in C/C++.
American Telecorp, Inc. as Software Engineer Feb
1996 - Nov 1996
Developed PBX management software for telephone companies, using PASCAL, C,
C++, MFC with DOS & Windows platforms being supported. My development
contributions were:
Modify and debug existing software in preparation of leading a redesign
team for Windows version of the product. This required using many
different development environments and debugging tools.
Support engineering development via development and purchase of DOS &
Windows tools.
Logical Services, Inc. as Software Contractor
July 1995 - Nov 1995
As contractor, and only software engineer in a hardware development
environment, I developed, supported and tested code for new hardware. My
development contributions were:
Development of test and demonstration software for Harmonic Noise
Cancellation system for power lines. This required working with the
hardware engineers to implement the cancellation algorithms on a new piece
of hardware, which also needed to be debugged and tested. It also required
burning eeproms to implement and test every aspect of the code since no
debugging environment was available.
Development of test and demonstration software for PCMCIA card for the
Toshiba Laptop containing flash memory several serial I/O channels,
watchdog, interrupt, keypad, and printer interfaces. This software was
developed in Borland C and the IDE environment provided the development and
debugging tools needed.
Apple Computer as Software Contractor Sept.
1994 - Nov 1994
As contractor, ported the Netware 4.x operating system from the IBM PC
platform to the Apple Power PC platform. My development contributions
were:
Complete the porting of partially ported Netware Loadable Modules (NLM's)
from an x86 environment to a PowerPC environment. Development tools were
provided by the company because they were not off-the-shelf.
Track down bugs in operating system as they affect NLM's.
Coactive Computing Corporation as Software Engineer
Sept. 1993 - June 1994
Developed low cost LocalTalk Network adapters for IBM PC compatible
computers. My development contributions were:
Client side caching additions. Performance on the LocalTalk network was
low so adding caching provided significant improvements for database
activity. By developing performance tests for different file system usage
scenarios, I added caching using assembly code and DOS debugging.
Upgraded MS-DOS driver to support expanded set of AppleTalk API calls.
This entailed straight forward code development of the predefined API calls
using DOS debugging tools.
Created supplementary TSRs to increase performance and reduce failures for
all versions of the existing drivers.
AddStor, Inc. as Senior Sofware Engineer
June 1992 - July 1993
Developed on-the-fly data compression software for MS-DOS systems with new
project development for Novell Netware 3.11 servers. My development
contributions were:
Reverse engineering of the Netware 3.11 kernel file handling to patch it to
include compression and decompression of data to improve disk space and
network performance. I designed and implemented the Netware Loadable
Module (NLM) to provide that real time data compression and decompression
to intelligent and non-intelligent clients. I used Netware development
tools and SoftIce for Netware.
DynaMedix Corporation as Software Engineer Feb
1991 - June 1992
Developed medical instrument data collection and processing software using
a custom multi-tasking kernel, communication drivers for the instruments, a
custom database manager and an in-house toolkit to perform all functions
that dealt with the hardware and the MS-DOS interface. My development
contributions were:
Utilities and library routines to use and program the hardware security
"keys" which prevented
unauthorized access to the system.
Low level remote file accessing protocol for the system's LAN.
Custom graphics routines to do graphics in multiple windows with clipping
and overlapping.
Software Consulting Feb
1988 - Feb 1991
During this 3 year period, I consulted for 3 companies. The companies and
my contributions are as follows:
Kaptron, Inc. - Developed several software controlled laser-to-fiber
alignment platforms.
Automatic stepper motor configuration additions to existing software.
User configuration interface expansion to increase control over motor
movements.
Raynet, Inc. - Developed fiber optic based communication switching
products.
IPC message interfacing and translation utility.
Hardware monitoring software for real time translation of on-going events.
pSOS operating system installation under the Microtec XRAY debugger.
MAKEFILE and directory structures for a multi-user, multi-module
development.
Fujitsu America, Inc. - Developed add on systems to digital switches.
Two protocol simulators for Software Test Group and Software Development
Group.
Menu-driven report simulator for sales demonstrations in the field.
Dynatrac Information Services, Inc. as Senior Software Engineer
Feb 1984 - Nov 1987
Developed a multiple processor point-of-sale data collection network.
My development contributions were as follows:
All the software that converted a conventional cash register into a
sophisticated data collection,
analysis, and communications system terminal.
Embedded system functions which included: communication protocols, data
storage, and
maintenance, error logging, and fault tolerant error handling (hardware and
software).
XENIX based polling system to monitor remote systems, collect data, modify
configurations.
6502 debugging/development environment for custom hardware.
Burn-in/test code for manufacturing product test.
"User-friendly" test software for QA product release.
Fox Video Games, Inc. as Senior Games Developer
Dec 1982 - Nov 1983
Developed video games. My development contributions were as follows:
A 3D motorcycle racing game using specifically optimized table driven
routines for speed
An adventure game with multiple screens, full animation and multiple
levels.
A full clone of a top ten arcade shoot'em up game with original arcade
feel.
Atari, Inc. as Senior Software Engineer Dec
1980 - Dec 1982
Developed home computer systems and associated consumer software as well as
systems and development software. My development contributions were as
follows:
Team Leader of three people in the design and implementation of the Atari
DOS IIIB.
Sound editor for the Atari 800 computer.
EDUCATION
California Polytechnic State University, San Luis Obispo in Computer
Science (1976-1980).