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.
AltDel is a 5-phase script-driven Lexical compiler that produces obfuscation by lowering the language level of Delphi source projects:
1. Normalization
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.
2. Forms
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.
3. Strings
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.
4. Idents
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.
5. Units
Finally, AltDel renames all units, their corresponding *pas, *dfm files, uses clauses, and *dpr files.