JTest 8.x的破解

    本文旨在于学习目的,如果工作中需要使用Parasoft Jtest,建议购买正版,不要只考虑保护自己的版权问题。

    目前官方已不提供版本下载,需要可在搜索引擎中输入完整名称,如jtest_win32_enterprise_plugin_8.1.47.exe检索下载,建议找信得过的网站,否则会有很多陷阱还不能下到正确的文件。

 

8.1

\Parasoft\JtestExtension8.1\eclipse\plugins\com.parasoft.xtest.libs_2.1.28\Parasoft\lic_client.jar
8.4
\Parasoft\JtestExtension8.4\eclipse\plugins\com.parasoft.xtest.libs_3.4.0\Parasoft\lic_client.jar

8.0 与8.1、8.4类似

 

    在该包中,com.parasoft.xtest.lic.client.validator.LocalLicenseValidator是负责License检查校验的,所以破坏它也就可以了,

    但建议还是下载一下合法的License文件,以防止在解析文件过程中就已经出了异常

 

JDK1.5 编译Class文件:

 

下载地址:/uploadfiles/file/2011/5/2011526-215619709.zip

改后代码示例:

 

package com.parasoft.xtest.lic.client.validator;

 

import com.parasoft.xtest.lic.client.LicenseStatus;
import java.io.*;

 

public class LocalLicenseValidator {
 private TokenManager _tokenManager;
 static final long PR_MULT = 0x41c64e6dL;
 static final long PR_ADD = 12345L;
 static final long PR_TWOTO31 = 0x80000000L;
 static final int PR_MASK = 0x7fffffff;

 

 public LocalLicenseValidator() {
  _tokenManager = null;
 }

 

 public LocalLicenseValidator(File file) {
  _tokenManager = null;
  _tokenManager = new TokenManager(file);
 }

 

 public LicenseStatus getLocalLicense(String s, int i, int j, String s1) {
  return LicenseStatus.OK;
 }

 

 public boolean releaseToken(String s, int i, int j, String s1) {
  Feature feature;
  ToolKey toolkey;
  if (_tokenManager == null) {
   Logger.getLogger()
     .warn("Cannot release token: token file not set.");
   return false;
  }
  feature = ParaSoftFeatures.getFeature(s, i, j);
  if (feature == null) {
   Logger.getLogger().warn(
     "Cannot release token: unknown feature: " + s + ' ' + i
       + '.' + j);
   return false;
  }
  toolkey = ParaSoftKeys.getToolKey(feature);
  if (toolkey == null) {
   Logger.getLogger().warn(
     "Cannot release token: no key for feature: " + s + ' ' + i
       + '.' + j);
   return false;
  }
  DecodedPassword decodedpassword;
  try {
   decodedpassword = PasswordDecoder.decodePassword(s1.getBytes(),
     toolkey.getPublicKey());
   return _tokenManager.releaseToken(feature, decodedpassword);
  } catch (IOException e) {
   e.printStackTrace();
   return false;
  }

 }

 

 public static LicenseStatus checkDate(DecodedPassword decodedpassword,
   int i, Feature feature) {
  return LicenseStatus.OK;
 }
}


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。