步骤:
- 反编译查看~/.PhpStorm2017.3/config/plugins/sencha-jetbrains-plugin/classes/com/sencha/idea/LicenseValidator.class
- 本来打算修改这个文件的,但是发现这个文件内容比较多,怕不好重新编译
- 发现验证的License文件放在 ~/.local/share/data/Sencha/JBPlugin/user.license
- 发现只要去掉“Product"字段的Trial就会判断不是测试版了,但是直接改的话会校验Signature,这个是根据这些字段值通过算法加密产生的,用于保证不被修改
- 查看是用的CryptoUtil这个工具类来校验的,那就简单了,用JD-GUI导出CryptoUtil.class为CryptoUtil.java,直接修改verifyBase64Signature方法,直接返回true
- javac编译CryptoUtil.java,纠错,再编译,纠错修改代码,再编译
- 去掉了GroovyObject实现,不知道有没有另外影响。。。。。。。
- 生成的CryptoUtil.class复制覆盖原来的
- 目前没有提示插件是测试版的信息了,持续观察中。。
javac -classpath /home/czm/.PhpStorm2017.3/config/plugins/sencha-jetbrains-plugin/classes:/home/czm/.PhpStorm2017.3/config/plugins/sencha-jetbrains-plugin/lib/commons-net-3.3.jar:/home/czm/.PhpStorm2017.3/config/plugins/sencha-jetbrains-plugin/lib/groovy-2.4.3.jar CryptoUtil.java