- Joined
- Jul 26, 2013
- Messages
- 3,046
- Thread Author
- #1
Whipped up a quickie example of how to apply reverse engineering principles and Java ASM Tree API to an existing code base. I hope some of you find it useful for purely educational purposes. The GNU General Public License applies, as included in the source zip.
Executable: idea-toolkit-1.0.1.jar
Example Usage: java -jar idea-toolkit-1.0.1.jar "C:\Program Files (x86)\JetBrains\IntelliJ 15.0.3\lib\idea.jar"
Source: idea-toolkit-1.0.1-sources.zip
The process itself is simple. It locates a particular class of interest with some crude identifiers. Then it manipulates a key method that originally decrypts the user submitted input and returns the decrypted, (mostly) JSON result. It replaces this method with simply piping the input through to the output with no decryption. Now one could provide an un-encrypted input like the one below and the whole decryption process would be avoided. Since this logic is common among their multiple products, this process will work across all of them.
For any curious souls, this method works for all of the following products.
Legacy Versions:
Executable: idea-toolkit-1.0.1.jar
Example Usage: java -jar idea-toolkit-1.0.1.jar "C:\Program Files (x86)\JetBrains\IntelliJ 15.0.3\lib\idea.jar"
Source: idea-toolkit-1.0.1-sources.zip
The process itself is simple. It locates a particular class of interest with some crude identifiers. Then it manipulates a key method that originally decrypts the user submitted input and returns the decrypted, (mostly) JSON result. It replaces this method with simply piping the input through to the output with no decryption. Now one could provide an un-encrypted input like the one below and the whole decryption process would be avoided. Since this logic is common among their multiple products, this process will work across all of them.
For any curious souls, this method works for all of the following products.
- IntelliJ 15.0.3 [Confirmed - C:\Program Files (x86)\JetBrains\IntelliJ 15.0.2\lib\idea.jar]
- PhpStorm 10.0.3, 10.0.4, 2016.2.1 [Confirmed - C:\Program Files (x86)\JetBrains\PhpStorm 10.0.3\lib\phpstorm.jar]
- WebStorm
- PyCharm
- RubyMine
- AppCode
- CLion
- ReSharper
- dotMemory
- dotCover
JavaScript:
Commercial-
{
"licenseId": "Commercial",
"licenseeName": "Arbiter",
"products": [
{
"code": "II",
"paidUpTo": "2038-01-19"
},
{
"code": "PS",
"paidUpTo": "2038-01-19"
},
{
"code": "WS",
"paidUpTo": "2038-01-19"
},
{
"code": "PC",
"paidUpTo": "2038-01-19"
},
{
"code": "RM",
"paidUpTo": "2038-01-19"
},
{
"code": "AC",
"paidUpTo": "2038-01-19"
},
{
"code": "CL",
"paidUpTo": "2038-01-19"
},
{
"code": "RS0",
"paidUpTo": "2038-01-19"
},
{
"code": "DM",
"paidUpTo": "2038-01-19"
},
{
"code": "DC",
"paidUpTo": "2038-01-19"
}
]
}
Legacy Versions:
Executable: idea-toolkit-1.0.0.jar
Example Usage: java -jar idea-toolkit-1.0.0.jar "C:\Program Files (x86)\JetBrains\IntelliJ 15.0.2\lib\idea.jar"
Source: idea-toolkit-1.0.0-sources.zip
Example Usage: java -jar idea-toolkit-1.0.0.jar "C:\Program Files (x86)\JetBrains\IntelliJ 15.0.2\lib\idea.jar"
Source: idea-toolkit-1.0.0-sources.zip
Last edited: