概述
原文地址:破解YourKit Java Profiler 2013的方法
作者:狂狐V
1.快速浏览一下YJP的安装目录(在我电脑上路径为c:Program Filesyjp 2013 build 13056lib),jar包不多,yjp.jar基本上就是要破解的jar包。用java反编译工具jd-gui打开yjp.jar,可以看到jar包中大部分的class和资源文件都以“_”结尾。
2. 用jd-gui无法查看这些文件,仔细查看发现这些文件经过加密处理的。大家都知道,jvm只能执行byte code代码,所以一眼看到这些加密的class文件,就能会想到,不论是如何加密以及在什么地方加密,一定在某个地方会进行解密处理,而且,加载解密后Class的ClassLoader一定没有加密。经过仔细调查,果不其然,在YJP自定义的ClassLoader类com.yourkit.h.l.class中找到了这部分代码:
顺便说一下,Natives类是本地方法调用的类,并且未进行加密:
3. 接下来要根据上面的代码:Natives.decipher1(arrayOfByte),可以把所有加密的class和资源文件可以解密出来。(这点很容易!)
4.接下来就在解密后class文件中查找license处理相关的代码,很快就在com.yourkit.h.n.class中找到:
6. 注入License到Natives类的decipher2方法后, 启动YJP,在License输入窗口,随便输入偶数个16进制数或者空格
注册完成后,看到注入的License信息:
但是,在启动YJP自带的Profile demo application时出现错误,而且错误还是来自对createDatabaseImpl的native调用:
7. 既然是createDatabaseImpl的native调用出错,那就用反汇编工具IDA Pro打开看看,并按F5之后看到如下伪代码。 (下面以32位的yjpagent.dll为例):
也就是在上图中,要由地址7001CA66无条件跳转到地址7001CAAB,即:jmp short loc_7001CABB(对应的HEX代码为EB 43,EB->JMP, 43表示目的地址跟当前地址的偏移量)。换句话说,就是要把把地址7001CA66开始的汇编指令0F 84改为EB 43,并把B1 00 00 00改为90 90 90 90 (90指令代表nop)。
使用任何一种Hex Editor,比如:UltraEdit,010 Editor,HEX Workshop,WinHex等进行修改:
对于64位的yjpagent.dll,处理方法基本一样,在此不再阐述。
8. 再启动YJP,并执行Profile demo application,运行良好,算是成功破解!
总结起来,三个关键步骤:
1. 解密已经加密的"Class_"文件。
2. 在Natives中注入License。
3. 绕过yjpagent.dll中的License完整性校验。
PS:大牛的方法看不懂,不过忘了在哪里看到另一个适用的方法,下载破解版的Yourkit java pro 里面含有keygen bat文件,运行该文件,点击patch按钮,选择yjp.jar文件,然后“name=”
Gengerate,生成key,输入key,即可用!
最后
以上就是彪壮石头为你收集整理的破解YourKit Java Profiler的全部内容,希望文章能够帮你解决破解YourKit Java Profiler所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复