Product 11is the professional/personal site of Jonathan Simpson. I am a programmer and hobbyist game developer.

Gtermix Neo

Dungeon Master Clone

Celling a Revolution

Old scientific visualization projects

Experiments in self-modifying code


Techniques for Self-Modifying Code

As an undergraduate I was interested in the more esoteric applications of low-level assembly programming, such as reverse engineering object code, Win32 assembly programming, etc. On this page I have collected some experiments I did in self-modifying assembly code. Although to be honest, I don't think any of these programs are actually self-modifying, instead they nondestructively inject a useful piece of code into another executable. I guess you could call it a first necessary step toward writing real self-modifying code.

DOS program to modify COM files.  comguard.asm
Explanation of how comguard works

DOS program which modifies both EXE and COM files.  dosguard.asm
Explanation of how dosguard works

Version of Dosguard with self-encryption.  encguard.asm

A tutorial on DOS file modification based on what I learned from writing Dosguard. This was published in the ezine The Assembly Programming Journal under my oh-so-cool psuedonym at the time, Digital Alchemist.

Creative Commons License
This work is licensed under a Creative Commons License