Obfuscation and Anonymization Transformation: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 12: Line 12:
==Obfuscation and Anonymization Transformation in emmtrix Studio==
==Obfuscation and Anonymization Transformation in emmtrix Studio==


emmtrix Studio implements obfuscation using #pragma directives or via the GUI. Obfuscation is a transformation that renames identifiers so that they become obscure. This feature is typically used to ensure that the code is unrecognizable. Functionality of the code and its original structure are preserved. The algorithms used are Secure Hash Algorithms SHA-1 and SHA-256.
emmtrix Studio implements a combined '''Obfuscation and Anonymization''' transformation that can be enabled via <code>#pragma</code> directives or through the graphical user interface. The transformation renames identifiers so that they become obscure or semantically neutral.
 
* '''Obfuscation mode''': focuses on concealment while maintaining link compatibility — '''global non-static variables and functions remain unchanged''', ensuring that external linkage and build scripts continue to work out of the box. Local symbols, static function names, parameter names, user‑defined types and other internal identifiers are renamed to hashed values.
* '''Anonymization mode''': performs a superset of obfuscation. '''All possible identifiers are renamed''', stripping even more semantic information than is present in the resulting object code. This mode offers more confidentiality especially for code with many global variables and sensitive function names.
 
In both modes, the functionality and original structure of the code are preserved. Secure Hash Algorithms '''SHA‑1''' and '''SHA‑256''' are employed as the basis for deterministic renaming.
 
===Typical Usage and Benefits===
===Typical Usage and Benefits===
The transformation is used make the source code hard to understand for humans while still preserving the original structure of the source code. It is meant for cases where the source code needs to be shared (e.g. for debugging) but no intellectual property should be shown. The transformation can be applied only to functions.
The transformation is used to make the source code hard to understand for humans while still preserving the original structure of the source code. It is meant for cases where the source code needs to be shared (e.g. for debugging) but no intellectual property—or sensitive naming information—should be shown.


Even though the transformation is selectable only for functions, it can affect other identifiers, as well, depending on the user settings. In its full scope, obfuscation affects all identifiers, including:
Even though the transformation is selectable only for functions, it can affect other identifiers, as well, depending on the user settings. In its full scope, obfuscation affects all identifiers, including:
Bots, Bureaucrats, Interface administrators, smwadministrator, smwcurator, smweditor, Administrators
2,557

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu