步驟:
- 反編譯查看~/.PhpStorm2017.3/config/plugins/sencha-jetbrains-plugin/classes/com/sencha/idea/LicenseValidator.class
- 本來(lái)打算修改這個(gè)文件的,但是發(fā)現(xiàn)這個(gè)文件內(nèi)容比較多,怕不好重新編譯
- 發(fā)現(xiàn)驗(yàn)證的License文件放在 ~/.local/share/data/Sencha/JBPlugin/user.license
- 發(fā)現(xiàn)只要去掉“Product"字段的Trial就會(huì)判斷不是測(cè)試版了,但是直接改的話會(huì)校驗(yàn)Signature,這個(gè)是根據(jù)這些字段值通過(guò)算法加密產(chǎn)生的,用于保證不被修改
- 查看是用的CryptoUtil這個(gè)工具類來(lái)校驗(yàn)的,那就簡(jiǎn)單了,用JD-GUI導(dǎo)出CryptoUtil.class為CryptoUtil.java,直接修改verifyBase64Signature方法,直接返回true
- javac編譯CryptoUtil.java,糾錯(cuò),再編譯,糾錯(cuò)修改代碼,再編譯
- 去掉了GroovyObject實(shí)現(xiàn),不知道有沒(méi)有另外影響。。。。。。。
- 生成的CryptoUtil.class復(fù)制覆蓋原來(lái)的
- 目前沒(méi)有提示插件是測(cè)試版的信息了,持續(xù)觀察中。。
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