AltDel is a 5-phase script-driven lexical compiler that produces obfuscation by lowering the language level of Delphi source projects.
Delphi source project obfuscator. AltDel is a 5-phase script-driven lexical compiler that produces obfuscation by lowering the language level of Delphi source projects. The obfuscation of Delphi projects is a deterrent against reverse engineering. Delphi executables are easy to reverse-engineer because they carry a lot of source code information. Good Delphi decompilers reconstruct whole projects, forms, source names, strings, and all. If you don't want your Delphi programming being visible to bad guys, then you would rather maintain well-formed source projects while releasing ever-changing AltDel-obfuscated versions.
AltDel is a 5-phase script-driven lexical compiler that produces obfuscation by lowering the language level of Delphi source projects:
The normalization phase converts all *.dfm to text format, strips the source of all comments, rewrites all strings as control strings, and determines a unique prefix for obfuscated identifiers. The unique identifier prefix is used for renaming all units and corresponding files. This phase is required for the correct operation of the following ones.
AltDel sets random values for form properties such as Height, Width, Color, etc. The original values are built by corresponding assignment statements at form creation time. String captions, hints, etc, are deleted from the original form and also dynamically built. Decompilers will reconstruct colorful random rectangles.
Strings make reverse engineering easier, a string like 'invalid password' reveals the address of a calling routine. AltDel transforms almost all strings into beautiful recursive string building expressions. This is hardly efficient, but the overhead should be negligible thanks to plenty of computing power. Decompilers are now string-blind.
All function, procedure, and object identifiers belonging to TForm are obfuscated, ie, replaced by random decimal strings with the unique prefix found in phase 1. As a result, a procedure called VerifyPassword, an atractive name from a hacker's perspective, would become meaningless noise like T__1257328796. Obfuscated names change randomly from one obfuscation to the next.
During this phase, random NOP hardware instructions are liberally inserted, so that the address of routines changes from one obfuscation to the next, routines become a moving target for patches. If a hacker's patch ever works, that won't be for long. The overhead of NOP processing is virtually nil.
Finally, AltDel renames all units, their corresponding *pas, *dfm files, uses clauses, and *dpr files.
Platform:Windows 2000, Windows XP, Windows Vista
System Requirements: 256MB memory; 10MB hard disk