Vault7: CIA Hacking Tools Revealed
Navigation: » Latest version
Setting Up Marble Manually
SECRET//NOFORN
First of all, it is recommended that you use the EDGEngineering Development Branch Project Wizard. If there is a specific reason you cannot use the EDGEngineering Development Branch Project Wizard here are the following steps to manually setup the Marble Framework for your project and solution.
Step 1: Cloning Core Library (Corelib)
The Core Library Repository contains the Marble Framework. You can add Core Library to your project as a Submodule using git.
Step 2: Copy (and Modify) Marble.h
Inside of Submodules\Corelib\Marble you will see Marble.horig. Copy the file into a Shared Folder in your Solution directory as Marble.h. Include this header in any project you wish to use it in. Modify the header file to configure the pool of algorithms to use. Also add a filter to your project name it Marble (or whatever you want). Choose to add existing items to this filter by right-clicking the project->Add->Existing Item->Navigate to Submodules\Corelib\Marble\Deobfuscators and add every file in the deobfuscators folder to the filter.
Step 3: Modify C/C++ Properties
Add the Deobfuscators and Marble Submodule to your include directory. Right-click project->Properties->C/C++->General->Additional Include Directories and add path to Deobfuscators and the path to Marble.
Step 4: Add Pre and Post-Build Events
Now you need to add Pre and Post Build Events so that the process becomes automated. You can read the README.txt in the Submodule if you want to manually execute these steps.
Pre-Build Steps: Right-click project->Properties->Build Events->Pre-Build Event. Add the following commands:
CALL "$(Subs)Corelib\CoreLib_Utils\Marble\Mender.exe" "$(SolutionDir)\"
CALL "$(Subs)Corelib\CoreLib_Utils\Marble\Mibster.exe" "$(SolutionDir)\" "$(SolutionDir)Shared\\" "$(Bin)$(Configuration)\$(Platform)\\"
Post-Build Steps: Right-click project->Properties->Build Events->Post-Build Event. Add the following commands:
CALL "$(Subs)Corelib\CoreLib_Utils\Marble\Mender.exe" "$(SolutionDir)\"
CALL "$(Subs)Corelib\CoreLib_Utils\Marble\Validator.exe" "$(Bin)$(Configuration)\$(Platform)\MarbleReceipt.xml" "$(Bin)$(Configuration)\$(Platform)\$(ProjectName)$(TargetExt)"
Step 5: Do Work
SECRET//NOFORN