Quick video guide
- Please read C/C++ Obfuscator: Introduction and Key Concepts.
- Start Project Manager
to create new project.
- Enter the project input directory - a root directory where all files and subdirectories of the project already reside. It's better to have all files of your project reside there, instead of adding them later after project's creation. No files in that directory will be modified by the tool.
- Enter path to output directory. It's where protected version of the file will be stored. All files in your project's Input Directory that have unknown type of C/C++ Obfuscator will be copied unmodified. It's recommended to use relative path (relative to project's Input Directory), e.g. ../outdir.
- For State Directory name, enter path to a directory where C/C++ Obfuscator will store its state. The directory should exist. It's also recommended to use relative path (relative to project's Input Directory), e.g. ../statedir.
- Go to to ensure the file types are detected correctly for all file types. For each file extension present in the project, it's enough to check only one file with that extension - the type of file will be in the right column.
- Go to
Visit that page each time you update your code so it
#include's new header file or
#includedirective is removed from your code. , to see
whether the proper category has been assigned to the header files found in your project.
For all found categories, exceptions are loaded automatically.
- Generate names of symbols that you are using from a libraries that you are not obfuscating along your project extacting list of symbols , review and manually update that list, and then add it to .
- Generate names of symbols that you export to other developers extacting list of symbols , and and then add them to , so that they are not modified by C/C++ Obfuscator.
- Go to
ReplacementFor_prefix prepended to them. .
Your project will be built with lite level of protection.
All symbols that are subject to mangling will get
- Try to compile your code in output directory. If compiler complains that symbol named
ReplacementFor_FunctionNamecan't be found, it means that
FunctionNameis a symbol from 3rd-party library, and that symbols from that library were not added to the list of exceptions extacting list of symbols . Add them to the list of exceptions. Repeat previous step until your code compiles just fine.
- Go to and select a production profile you wish to apply to your project and click Save. Go to , then do . Then do very minor check that protected code works fine.
- Your product will then be ready for shipping.
Step-by-Step Guide using GUI (Project Manager)
- If you frequently add files with code that needs to be obfuscated to your project, then instead of
adding them every time using
On that page, you will be asked for processing mode that should be assigned to files with a given file extension. If unsure which mode to specify, go toand see which mode is used for files with that file extension, and use that mode for unregistered files with that extension. , you can set up how
C/C++ Obfuscator should handle unregistered files of a given file extension, by going to
- If you wish to make a snapshot of a project's settings (e.g. before modifying some settings), do . The generated file contains only names of files in your project and all the settings; it does not include file contents, so the file is really tiny, and it's safe to send it to your colleagues. You will be able to import the backup using .
- Building project using command line
For each project, it's possible to generate a command line script (or .bat file for Windows)
that will perform all operations available
It encapsultes all your project settings because it includes a snapshot of all project's configuration, so you will have to regenerate the script every time you change the options of some modes or add or remove some files from your project (though no regeneration is necessary if you just edit set of exceptions, as settings are stored in separate file in Project's Input Directory).
The documentation on using generated buildscripts is available here - it lists all supported command line flags. menu. To achieve that, click on
- If you need running obfuscator directly from command line
- go to to install aliases to command line backends to some directory listed in your PATH environment variable. This way you won't have to type full path to command line tools. Use to generate command lines.
- Project Manager window is a web browser window. So you can use all common web browser shortcuts to navigate it, e.g. for going back to previous screen. On Windows, special build of Firefox is used, that talks to server via named pipes, to avoid problems with firewalls (as they prevent apps accessing even local host). You can turn off this "HTTP over named pipes" mode, and use your favourite browser to work with Project Manager.
- It's possible to edit a set of exceptions using your favourite editor, as it's stored in plain text file. Go to the corresponding page in the