神刀安全网

Jrebel For Android 破解过程

Jrebel For Android 需要破解两个jar包jr-android.jar和jr-android-ide-studio.jar

每个jar包中需要处理的class每个版本不同

我这里以1.1.8版为例演示破解过程

jr-android.jar中需要破解的文件为com/zeroturnaround/jrebel/android/b.classa方法

  public static boolean a(UserLicense paramUserLicense, km paramkm)   {     if (paramkm.product == null) {       throw new LicenseException("Missing product name.");     }     paramkm = (paramkm = kl.getByName(paramkm.product)).a();     paramkm = paramkm;paramUserLicense = paramUserLicense;Object localObject = new BouncyCastleProvider();(localObject = Signature.getInstance("SHA1withRSA", (Provider)localObject)).initVerify(paramkm);((Signature)localObject).update(paramUserLicense.getLicense());return ((Signature)localObject).verify(paramUserLicense.getSignature());   } 

修改为

  public static boolean a(UserLicense paramUserLicense, km paramkm)   {     return true;   } 

参数中km paramkm每个版本都会不同,定位该方法位置为返回值为boolean,方法名为a,第一个参数类型为UserLicense

jr-android-ide-studio.jar中需要破解的文件为com/zeroturnaround/jrebel/android/dB.classa方法

  public static boolean a(UserLicense paramUserLicense, PublicKey paramPublicKey)     throws Exception   {     BouncyCastleProvider localBouncyCastleProvider = new BouncyCastleProvider();     Signature localSignature = Signature.getInstance("SHA1withRSA", localBouncyCastleProvider);     localSignature.initVerify(paramPublicKey);     localSignature.update(paramUserLicense.getLicense());     return localSignature.verify(paramUserLicense.getSignature());   } 

修改为

  public static boolean a(UserLicense paramUserLicense, PublicKey paramPublicKey)   {     return true;   } 

定位改方法位置为返回值boolean,方法名为a,第一个参数类型为UserLicense,第二个参数类型为PublicKey

实际中可以写成一个破解工具出来进行破解,我这里已经写了一个出来,不打算放出来,避免zeroturnaround公司修改算法,也请写出来了破解工具的同学不要放出来

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Jrebel For Android 破解过程

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址