Vault7: CIA Hacking Tools Revealed
Navigation: » Latest version
Updating DerStarke v1.4 to Yosemite
Prerequisite (non code changes):
- Xcode 6 for 10.10 SDK
- Since Xcode 6 is also in beta, it is recommended to do this in a VMVirtual Machine or non-primary dev box
- note beta Xcode's will install as Xcode6-Beta.app, so it won't overwrite current working Xcode, but have expereinced issues in the past
- Open Xcode and set build paths to 'Legacy', under Xcode->Preferences->Locations->Advanced
- Since Xcode 6 is also in beta, it is recommended to do this in a VMVirtual Machine or non-primary dev box
- Xcode 6 Command line tools for which ever OSOperating System you're developing on
- Should work on either Mavericks or Yosemite
- Have to point xcode-select to beta version of Xcode 6
- sudo xcode-select -switch /Applications/Xcode6-Beta2.app/Contents/Developer
- sudo xcode-select -switch /Applications/Xcode6-Beta2.app/Contents/Developer
Checkout DerStarke (ssh://git@stash.devlan.net:7999/derstarke/derstarke.git)
- Make sure to do a recursive clone or submodule update to get all submodules
- Create 'yosemite' branches in derstarke, extern/bokor, and extern/darkmatter
- bokor and darkmatter will be the only two submodules we need to modify on new OSOperating System release
- (let User #73580 handle the triton stuff ;b)
- (let User #73580 handle the triton stuff ;b)
- bokor and darkmatter will be the only two submodules we need to modify on new OSOperating System release
Changes to DerStarke
- in file preconfig.plist (and the two sample debug.plist and release.plist)
- Add a new plist entry for Yosemite under Persistence options
- config['Persistence Config']['Yosemite Support']
- Set this option to true, but might want to set Mountain Support to false since Xcode usually only ships with latest 2 SDK's
- You can add MLion SDKSoftware Development Kit from previous Xcode if wanted to support more than two OSXs
- Add a new plist entry for Yosemite under Persistence options
- in file darkmatter.py
- in function modify_inf
- All darkmatter components (drivers and apps) use INF files for build options; modify_inf modifies the actual INF text files under extern/darkmatter
- Add 'if statement' for existence of config['Persistence Config']['Yosemite Support']
- note the added build option of '-DYOSEMITE_IMPLANT ' only needs to be given to loader_inf since no other component of darkmatter cares about OS
- note the space at the end of the build string is important
- in function modify_inf
- build1p4.py
- in function build_kernal_payload
- Add 'if clause' to TWO places for yosemite checks at beginning of function
- (One while iterating through plist config, and one while building bokor build string)
- Add 'if clause' to TWO places for yosemite checks at beginning of function
- Would also not be a bad idea to mod the help intro
- in function build_kernal_payload