最近一直很忙,今天总算抽出点时间总结一下破解YourKit Java Profiler 2013的过程。YourKit Java Profiler 2013(后面简称YJP)是我见过的软件保护做的最好的Java应用软件,虽然YJP是用Java写的应用软件,但是软件保护相关却是用C++写的,在 windows上是的Native代码是yjpagent.dll,在Linux上是Native代码是yjpagent.o。下面的破解是基于 windows版本的YJP。
1.快速浏览一下YJP的安装目录(在我电脑上路径为c:\Program Files\yjp 2013 build 13056\lib),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和资源文件可以解密出来。(这点很容易!)
解密后的yjp包结构如下:
4.接下来就在解密后class文件中查找license处理相关的代码,很快就在com.yourkit.h.n.class中找到:
再阅读此类和调用此类的其他类,可以了解license的结构如下:
1.userId (String)
2.固定值=1 (int)
3.授权类型 (int,可选4000/4002)
4.授权代码 (string)
5.License签发日期 (date)
6.License失效日期 (为null时表示永不失效)
7.可选项,比如免费支持有效期
5.了解了License结构,接下来就要进行破解了。
YJP是采用RSA进行加密的,我在《破解JRebel 5.x的方法》中介绍了几种可行的破解非对称密钥加密的方法。
如果采用伪造一对RSA公钥和密钥,并替换原有的公钥,那就需要去破解native代码yjpagent.dll。
而破解本地代码要远比破解经过混淆的java byecode困难的多。如果有其他的可行的方法时,一般不考虑这种方式。
(如果一定要用这种方式破解,那么首先要伪造的公钥替换掉yjpagent.dll中的公钥,并在第三步的基础上用伪造的私钥对原yjp.jar中进行了加密的class和资源进行加密)。
现在采取另一种更简单的破解方法,即绕过解密过程直接注入一个合法的License。经过分析,可以在com.yourkit.h.n.class中注入License。
由于com.yourkit.h.n.class在原jar包中是加密的,为了确保注入代码后不存在任何问题就需要对此类进行加密,但是,由于不知道 YJP原始的加密密钥,除非采用前面所说的“伪造一对RSA公钥和密钥,并替换原有的公钥”。原因就是:如果注入License后不进行加密,则会存在一 个隐患:因为加密的class和未加密的class是使用不同的ClassLoader加载的,而com.yourkit.h.n.class原来是加密 的,这样com.yourkit.h.n.class的ClassLoader就发生了变化,就会引起ClassNotFoundException异 常。
大家知道,在JVM中是由唯一决定一个Class,也就是说一个Class使用不同的ClassLoader加载时是不同的。
基于上面的原因,在com.yourkit.h.n.class中注入License不是一个好的方法。仔细分析,最好的方法是在Natives类的 decipher2方法中注入License,并把decipher2由Native调用修改成非Native调用,其他所有的信息保持不变。(可以使用 cglib或javassist来完成)
6. 注入License到Natives类的decipher2方法后, 启动YJP,在License输入窗口,随便输入偶数个16进制数或者空格
就可点击“OK”进行注册。
注册完成后,看到注入的License信息:
但是,在启动YJP自带的Profile demo application时出现错误,而且错误还是来自对createDatabaseImpl的native调用:
7. 既然是createDatabaseImpl的native调用出错,那就用反汇编工具IDA Pro打开看看,并按F5之后看到如下伪代码。 (下面以32位的yjpagent.dll为例):
问题一目了然,黄色部分的“The installation is corrupt”跟上一步java.lang.RuntimeException信息一样。下一步要做的就是从“v18 = 0;”无条件跳转到"v18 = 2;",即绕开中间的"if ( v16 ....."检查。
回到反汇编窗口,找到对应的指令和地址:
也就是在上图中,要由地址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完整性校验。
相关推荐
YourKit Java Profiler 2017 破解版本,仅供学习交流,如需商用,请到官方网站下载正版软件
最新YourKit Java Profiler 2019.01 最新破解版 build 111 绿色安装。 欢迎大家试用。 免责声明:这只是供个人开发爱好者使用,如用于商业或公司目的,请购买正版,否则由此产生的后果,本人概不负责。 毕竟这只是...
yourkit java profiler 2015 注册码 实测可进行正常安装 服务器进程内存分析不可多得的工具
YourKit Java Profiler 2017 破解版YourKit Java Profiler 2017 破解版YourKit Java Profiler 2017 破解版YourKit Java Profiler 2017 破解版
最新YourKit Java Profiler 2015破解版 build 15050 绿色安全 YourKit Java Profiler是目前最好的一款Java Profiler软件
【标题】"YourKit Java Profiler v9.5.0." 是一款专业的Java性能分析工具,专注于帮助开发者和系统管理员优化Java应用程序的性能。这款工具提供了深入的内存和CPU使用情况分析,使得用户能够识别并解决性能瓶颈,...
YourKit Java Profiler :专业Java剖析工具:YourKit Java Profiler 发布。CPU和内存的剖析历来是很困难的,YourKit创造出了革命性的剖析工具,应用在研发和生产阶段,为专业的Java开发者带来了无比的好处。 ...
在提供的压缩包文件中,`YourKit-JavaProfiler-2019.8-b141.exe`是Windows平台上的安装程序,用户可以通过这个文件安装和运行YourKit Java Profiler。`yourkit.jar`是程序的主要可执行文件,包含所有的库和组件。`...
最新YourKit Java Profiler 2015破解版 build 15084 绿色安装。 先前破解的15050版本,破的不完整,偶尔有闪退和打不开snapshot等问题。 这次解的全一些。欢迎大家试用。 免责声明:这只是供个人开发爱好者使用,如...
3. **YourKit-JavaProfiler-2020.9-b410.exe**:这是YourKit Java Profiler的安装程序,用户可以通过运行这个文件来安装和配置该性能分析工具。 4. **readme.txt**:这个文件通常包含软件的使用说明、安装指南、...
YourKit Java Profiler 是业界领先的Java剖析工具。CPU和内存的剖析历来是很困难的,YourKit创造出了革命性的剖析工具,应用在研发和生产阶段,为专业的Java开发者带来了无比的好处。 YourKit Java Profiler keygen...
YourKit Java Profiler是一款强大的性能分析工具,专为Unix操作系统设计,用于监控和优化Java应用程序。它提供了详尽的内存和CPU使用情况分析,帮助开发者深入理解项目的性能瓶颈,从而提高应用的运行效率。 在内存...
《深入解析YourKit JavaProfiler 12.0.2与Delphi的整合应用》 YourKit Java Profiler是一款强大的性能分析工具,专为Java应用程序设计,用于深入剖析内存占用、CPU消耗以及线程行为等问题。在12.0.2版本中,它提供...
最新YourKit Java Profiler 2017.02破解版 build 57 绿色安装。 欢迎大家试用。 免责声明:这只是供个人开发爱好者使用,如用于商业或公司目的,请购买正版,否则由此产生的后果,本人概不负责。 毕竟这只是业余...
YourKit Java Profiler 2023.09 build 109 * JVM support * Linux support * macOS support * Windows support * Java Flight Recorder support
YourKit Java Profiler 是业界领先的Java程序性能分析工具。程序的CPU和内存性能剖析历来是很困难的,YourKit创造出了革命性的性能分析工具,可应用在研发和生产阶段,为专业的Java开发者带来了无比的好处。
YourKit Java Profiler yjp-2015-build-15084-crack.zip
【文件名称列表】: "YourKit-JavaProfiler-2017.02" 这个文件名可能是该版本的安装包或解压后的文件夹,包含了所有用于运行和配置YourKit Java Profiler的必要组件。 **详细知识点**: 1. **YourKit Java Profiler*...
JProfiler是一个全功能的Java剖析工具(profiler),JProfiler可以找到性能瓶颈、抓住内存泄漏(memory leaks)、并解决多线程的问题。它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存泄漏;...
用于代码覆盖率分析,函数分析,Api调用分析