您的位置:首页 > 移动开发 > Android开发

Jrebel For Android 破解过程

2016-07-11 14:50 671 查看
JrebelForAndroid需要破解两个jar包jr-android.jar和jr-android-ide-studio.jar每个jar包中需要处理的class每个版本不同我这里以1.1.8版为例演示破解过程jr-android.jar中需要破解的文件为com/zeroturnaround/jrebel/android/b.classa方法
publicstaticbooleana(UserLicenseparamUserLicense,kmparamkm){if(paramkm.product==null){thrownewLicenseException("<spanstyle="color:#FF6666;">Missingproductname</span>.");}paramkm=(paramkm=kl.getByName(paramkm.product)).a();paramkm=paramkm;paramUserLicense=paramUserLicense;ObjectlocalObject=newBouncyCastleProvider();(localObject=Signature.getInstance("SHA1withRSA",(Provider)localObject)).initVerify(paramkm);((Signature)localObject).update(paramUserLicense.getLicense());return((Signature)localObject).verify(paramUserLicense.getSignature());}
修改为
publicstaticbooleana(UserLicenseparamUserLicense,kmparamkm){returntrue;}
参数中kmparamkm每个版本都会不同,定位该方法位置为返回值为boolean,方法名为a,第一个参数类型为UserLicensejr-android-ide-studio.jar中需要破解的文件为com/zeroturnaround/jrebel/android/dB.classa方法
publicstaticbooleana(UserLicenseparamUserLicense,PublicKeyparamPublicKey)throwsException{BouncyCastleProviderlocalBouncyCastleProvider=newBouncyCastleProvider();SignaturelocalSignature=Signature.getInstance("SHA1withRSA",localBouncyCastleProvider);localSignature.initVerify(paramPublicKey);localSignature.update(paramUserLicense.getLicense());returnlocalSignature.verify(paramUserLicense.getSignature());}
修改为
publicstaticbooleana(UserLicenseparamUserLicense,PublicKeyparamPublicKey){returntrue;}
定位改方法位置为返回值boolean,方法名为a,第一个参数类型为UserLicense,第二个参数类型为PublicKey实际中可以写成一个破解工具出来进行破解,我这里已经写了一个出来,不打算放出来,避免zeroturnaround公司修改算法,也请写出来了破解工具的同学不要放出来
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jrebel android 破解