想用jni实现系统钩子,但找到的资料很少,而使用jinvoke可能会easy些,所以找到了jinvoke,可以用N次后居然不给用了,提示LICENSED过期,网上搜索破解方法也没搜到,所以就想到当时自己是如何做LICENSED的,没想到他的做法跟我一样,直接写注册表,以下操作就可以破解LICENSED使用期限了。
有童鞋在问如何在程序中实现,现在贴出来:
方法有很多,这只是最简单的一种方法。
删除注册表:
\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs\com\
下的jinvoke目录,该目录下的apalikka键是记录jinvoke使用期限
有童鞋在问如何在程序中实现,现在贴出来:
/**
* 删除jinvoke限制注册表项
* @author RuiLin.Xie
*/
private void regJinvoke() throws IOException
{
//用户临时路径
String dir = System.getProperty("java.io.tmpdir");
String file = dir + "reginv.reg";
//注册文件内容,内容描述删除jinvoke这个项
StringBuffer reg = new StringBuffer();
reg.append("Windows Registry Editor Version 5.00");
reg.append(System.getProperty("line.separator"));
reg.append("[-HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Prefs\\com\\jinvoke]");
//生成注册文件
FileOutputStream out = new FileOutputStream(file);
out.write(reg.toString().getBytes());
out.flush();
out.close();
//运行注册文件
Runtime rt = Runtime.getRuntime();
Process process = rt.exec("regedit /s " + file);
try
{
process.waitFor();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
方法有很多,这只是最简单的一种方法。