Last Updated: 12 June 2021

My name is Aleksander Krimsky and here you can find a bunch of my computer and life stuff. Much of my work is focused on reverse engineering with a specialty in Windows PE disassembly. I like to program in C/VC++, however I'm familiar with x86 from a bytecode representation and programming language (MASM32). Other languages include Java, Php, Javascript, and SQL. When I'm not computer programming, I'm probably playing computer games - some of my favorites are Duke Nukem 3D, Rust, SimCopter, SimCity 3000, and Runescape.

Work History

Systems and Technology Research
Reverse Engineer - Jun 2021 - Present

BAE Systems
Senior Software Engineer - Jan 2019 - Jun 2021

Meire & Brito Automation
Software Developer - Aug 2014 - Oct 2018

U.S. Air Force
Munitions Systems - May 2011 - Apr 2017


M.S. Computer Science (Student)
Johns Hopkins University
Spring 2020 - Present

B.S. Computer Science
State University of New York at Buffalo
Sep 2016 - Aug 2018

B.T. Law Enforcement Leadership
State University of New York at Canton
Sep 2012 - Dec 2015

A.A. Criminal Justice
Columbia Greene Community College
Sep 2008 - Aug 2010

Project Showcase

Steam Page
GitHub Source Code

February 2021 - Present

Wrote a custom DirectX 11 engine in C++ 17 that renders SimCity 2000 maps in 3D. A stripped down version of DirectX Toolkit was used. There is no official public documentation from Maxis on the .sc2 file format. Existing reverse engineering efforts were used as the starting point, namely the run-length encoding decompression and segment headers.
SimCopterX / SimStreetsX
http://simcopter.net | GitHub
http://streetsofsimcity.com | GitHub

May 2019 - Present

Disassembled and reverse engineered Win32 PEs created originally for Windows 95. Created patching utilities to modify the compiled executables via binary modification using raw x86 opcode instructions. Fixed various game crashing problems and implemented new features, such as modifying the engine to allow multiple resolution modes. Various versions (recompilations) of the executables are dynamically handled through an original technique that I call "auto-detour". Function detours are generated irrespective to addresses by using a new section created in the executable.