The PowerPC processor module in IDA Pro does not handle Altivec/VMX instructions. Many well-known PowerPC implementations include support for Altivec (such as the Apple G4/G5 range, or the majority of next generation game consoles). Fortunately IDA Pro supports the concept of extension modules that can add support for non-standard instructions, so this extension adds support for the Altivec instruction set.
Place the appropriate processor extension module ppcaltivec64.(dll/so/dylib) (currently only 64-bit IDA has been compiled for) within your IDA Pro 'plugins' directory. By default the plugin is active when dealing with PPC code, but you can disable/re-enable the plugin by using the entry in the Edit/Plugins menu. If you want the plugin to be disabled on load, you will have to edit this source code. Change the value of g_HookState to 'kDisabled' and rebuild.
On Windows, you should be able to open the solution and compile, provided you have the idasdk70 folder inside C:\Program Files\IDA 7.0.
Place the project folder inside idasdk70/plugins. cd to idasdk70 then run make:
Run
$ make -C plugins/ppcaltivec __EA64__=1 __MAC__=1 NDEBUG=1
Change __MAC__ to __LINUX__ if applicable.
The output binary will be in idasdk70/bin/plugins
You may also use CMake
$ mkdir PPC-Altivec-IDA/cmake-build
$ cd PPC-Altivec-IDA/cmake-build
$ cmake -D IDASDK:string="/Applications/IDA Pro 7.0/idasdk70" ..
$ make
Replace IDASDK variable with path to the IDA SDK on your system.
- Created
- Correction to operand register number extraction.
- Correction to operand order for vmaddfp.
- Now handles initial analysis without any additional hassle.
- Added support for Altivec opcodes with 4 parameters.
- Added support for auto comments.
- Support for IDA Pro 4.9
- Support for Gekko instructions merged from the Gekko extension module created by HyperIris.
- Also incldued support for SPRG names for PS3 as added by Tridentsx.
- Support for IDA 7. Added SPRG descriptions to auto-comments.
- Added Linux/macOS build methods.
- Added CMake build file.