Skip to content

Commit

Permalink
Merge pull request #1 from tintinweb/feat/idapro
Browse files Browse the repository at this point in the history
Feat/idapro
  • Loading branch information
tintinweb authored May 14, 2020
2 parents c1e01c3 + 5917a61 commit bcf8b21
Show file tree
Hide file tree
Showing 5 changed files with 959 additions and 13 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Change Log

## 0.0.2
- new: add experimental support for IDA Pro (Windows Only)

## 0.0.1
- Initial release
24 changes: 20 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ Let's be honest, there is no reason to remember how to decompile stuff with the

This extension can be used to decompile ...

* <img width="17" alt="Screenshot 2020-05-13 at 14 11 53" src="https://user-images.githubusercontent.com/2865694/81810700-b7e73b80-9523-11ea-9ed3-f52704689939.png"> Binary executables for various platforms (as supported by Ghidra; Windows PE, Linux ELF, etc..)
* <img width="17" alt="Screenshot 2020-05-13 at 14 11 53" src="https://user-images.githubusercontent.com/2865694/81810700-b7e73b80-9523-11ea-9ed3-f52704689939.png"><img width="17" alt="Screenshot 2020-05-13 at 19 26 56" src="https://user-images.githubusercontent.com/2865694/81844741-d3683b80-954f-11ea-8d21-df843d1dc4df.png"> Binary executables for various platforms
* as supported by [Ghidra](https://github.com/NationalSecurityAgency/ghidra/wiki/Frequently-asked-questions#what-processors-are-currently-supported); Windows PE, Linux ELF, IOS, etc..
* <img width="16" alt="Screenshot 2020-05-13 at 14 10 09" src="https://user-images.githubusercontent.com/2865694/81810613-8a9a8d80-9523-11ea-9fd9-0c83274746d7.png"> Java Jar archives and compiled Classes
* <img width="15" alt="Screenshot 2020-05-13 at 14 09 49" src="https://user-images.githubusercontent.com/2865694/81810616-8c645100-9523-11ea-9bd1-cfddde16a420.png"> Android APKs
* <img width="15" alt="Screenshot 2020-05-13 at 14 09 49" src="https://user-images.githubusercontent.com/2865694/81810616-8c645100-9523-11ea-9bd1-cfddde16a420.png"> Android APK's


![vscode-decompiler](https://user-images.githubusercontent.com/2865694/81797377-faeae400-950e-11ea-9060-2712dbb4740f.gif)
Expand All @@ -27,13 +28,27 @@ Have phun 🙌
## Setup

* Requires Java (11+) to be installed system-wide. Just install the latest JRE/JDK for your OS (e.g. openJDK).
* Requires a working installation of [Ghidra](https://ghidra-sre.org/) (← Download)
* Requires a working installation of [Ghidra](https://ghidra-sre.org/) (← Download) to decompile executables
* either available in `PATH` (like when you installe it with with `brew cask install ghidra` on os-x; or set-up manually)
* otherwise please specify the path to the executable `<ghidra>/support/analyzeHeadless` in `code → preferences → settings: vscode-decompiler.tool.ghidra.path` and make sure that the `analyzeHeadless` script runs without errors (and is not prompting for the JDK Home 🤓). Here's a sample Ghidra config for Windows:
![ghidraconf](https://user-images.githubusercontent.com/2865694/81807509-7dc76b00-951e-11ea-99d7-359bd624cce5.png)

* (Experimental; Windows Only) Optional a licensed version of [IDA Pro](https://www.hex-rays.com/products/decompiler/) with decompiler support.
* specify the path to the `idaw` executable in `code → preferences → settings: vscode-decompiler.tool.idaPro.path`, e.g. `c:\IDA68\idaw.exe`.
* set preference for `idaPro (experimental Windows Only)` in `code → preferences → settings: vscode-decompiler.default.decompiler.selected`.
* we'll automatically try to run 32 and 64bits `idaw` on the target application (preference on what executable is configured by you)
* Other tools are bundled with the extension. Just make sure Java is available in your `PATH`.

### Setting tool preferences

`code → preferences → settings:`

* Set default decompiler preference to `ghidra` (default) or `idaPro (experimental Windows Only)` (requires a licensed version of IDAPro + Decompiler)
* `vscode-decompiler.default.decompiler.selected`
* Set preference for java decompilation to JADX or JD-CLI (default)
* `vscode-decompiler.java.decompiler.selected`
* Set preference for android apk decompilation to dex2jar + jd-cli (slow) or JADx (default)
* `vscode-decompiler.apk.decompiler.selected"`

## Credits

This extension wouldn't be possible without the smarties that are developing the following reverse-engineering tools:
Expand All @@ -42,6 +57,7 @@ This extension wouldn't be possible without the smarties that are developing the
* [JadX](https://github.com/skylot/jadx/)
* [JD-CLI](https://github.com/kwart/jd-cmd)
* [dex2Jar](https://github.com/pxb1988/dex2jar)
* [IDA Pro Advanced & Decompiler](https://www.hex-rays.com/products/decompiler/)
* LogoMakr (CC; Logo)

## Release Notes
Expand Down
17 changes: 16 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "vscode-decompiler",
"displayName": "Decompiler",
"description": "Decompile the $h*! out of things",
"version": "0.0.1",
"version": "0.0.2",
"keywords": [
"security",
"decompile",
Expand Down Expand Up @@ -41,6 +41,7 @@
"main": "./src/extension.js",
"activationEvents": [
"onFileSystem:decompileFs",
"onCommand:vscode-decompiler.decompile",
"*"
],
"contributes": {
Expand All @@ -60,6 +61,11 @@
"default": "",
"description": "Path to ghidra/support/analyzeHeadless executable"
},
"vscode-decompiler.tool.idaPro.path": {
"type": "string",
"default": "",
"description": "Path to IDA/idaw.exe executable"
},
"vscode-decompiler.tool.jdcli.path": {
"type": "string",
"default": "",
Expand Down Expand Up @@ -92,6 +98,15 @@
],
"default": "jd-cli",
"description": "Select the Java decompiler of preference"
},
"vscode-decompiler.default.decompiler.selected": {
"type": "string",
"enum": [
"ghidra",
"idaPro (experimental Windows Only)"
],
"default": "ghidra",
"description": "Select the default decompiler of preference"
}
}
},
Expand Down
Loading

0 comments on commit bcf8b21

Please sign in to comment.