请问一下论坛里面研究FR的大神,有没有发现这款软件有什么暗装呢?发出来一起交流一下呗。
前些天看了论坛一位大神的帖子https://www.52pojie.cn/thread-1012601-1-1.html ,试着弄了一下,真的被FR10的加密给弄崩溃了
于是想到了一个新思路,是否可以在它加载完关键类之后,从jvm里面取出字节码修改后再替换回去呢?
分享一下我的思路吧
启动FR,使用HSDB工具拿到三个类:
1、com.fr.license.selector.EncryptedLicenseSelector
2、com.fr.license.security.LicFileRegistry
3、com.fr.license.entity.FineLicense
需要修改以下几个关键的地方:
1、com.fr.license.selector.EncryptedLicenseSelector的decrypt方法:
[Java] 纯文本查看 复制代码
public abstract class EncryptedLicenseSelector extends AbstractLicenseSelector {
byte[] getBytes() {
byte[] var1 = this.readRawBytes();
return this.decrypt(var1);
}
private byte[] decrypt(byte[] var1) { // 修改为 return var1;
try {
System.getProperties().setProperty("com.ibm.crypto.provider.DoRSATypeChecking", "false");
return (new CommonDecryptChain()).decrypt(var1);
} catch (Throwable var3) {
this.decryptFailed(var3);
return new byte[0];
}
}
protected void decryptFailed(Throwable var1) {
FineLoggerFactory.getLogger().error("Read license failed." + var1.getMessage(), var1);
}
abstract byte[] readRawBytes();
} SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.
其实修改这一个地方就够了,另外两处修改可用于方便懒人。
2、com.fr.license.security.LicFileRegistry的check方法:
[Java] 纯文本查看 复制代码
public class LicFileRegistry {
private static Map<Integer, LicFileChecker> _2c75dfba_fdee_47fa_8cf4_74897f6d7e9a = new ConcurrentHashMap(5);
private LicFileRegistry() {
}
static {
register(new LicFileCheckerImpl());
}
public static void register(LicFileChecker var0) {
_2c7
支付5UD,阅读全文
还有更多的精彩内容,作者设置为付费后可见