The Lost Art of Assembly Programming: Self-modifying Code
tibleiz.net·87w
Preview
Report Post

2024-04-30

On Von Neumann architectures, programs are data, therefore they can modify their own code while running.

Self-modifying code is mostly a matter of machine code even if some high level languages like LISP allow to manipulate their own code. So this practice was more common when developers wrote programs directly in assembly.

Self-modifying code makes decompilation impossible in the general case unless you solve the halting problem. Fortunately with the use of high level languages and modern architectures, it has become a forgotten technique and is almost impracticable today. Decompilation is difficult enough, and as far as I know, existing decompilers usually ignore modified code except to detect self-decyphering.…

Similar Posts

Loading similar posts...