Ada source code obfuscator update
Version 0.6 of the obfuscada perl script has been released and is available at:
Changes since version 0.2 are:
- Exclude 'I' and 'O' from obfuscated identifiers to avoid confusion with '1' and '0'
- Support bodies and child/separate units
- Various bug fixes
- Use the UniLexer perl module for scanning the input into tokens
Due to the limitations of global text substitution without semantic knowledge, I expect this to be the last update of the script.
A complete rewrite in Ada (using ASIS) is planned.
Re: Ada source code obfuscator update
After the release of version 0.6, a number of bugs were found and fixed so I decided to release version 0.7, see
This version was successfully used on a system consisting of 180,000 lines of Ada code.
Changes wrt version 0.6 are:
- Extend @do_not_mangle and add a note about its incompleteness.
- In sub mangled_name, add the name component onto $result unmangled if no
mangling was performed on it.
- Rename sub pkg_mname to unit_mname and rename @packages to @units.
- At sub nexttoken, add optional arg $join_compound_name (default: false;
this is set true on processing unit names.)
- New sub skip_to_first_of permits skipping to any of multiple given tokens;
skipping ends on encountering the first of the given tokens.
- In main program:
- fix iteration over @lex by replacing the "for" loop incrementing $lndx
by a "while" loop employing sub nexttoken
- fix bug in processing of task and protected declarations (the comparison
against 'body' was broken)
- detect keyword "use" so that "use type" is out of the way (otherwise the
type declaration circuitry is erroneously triggered.)
- In sub wregex, change search pattern to exclude preceding ' (tic) to avoid
- In sub unit_mname and main program, change unit prefix to "U".