软件破解(1)-Java篇

初识

最经同学发给我一个java的软件,让我帮忙破解一下。经过学习+查找,终于成功破解。(Java编写的软件破解应该是相当简单的,可以反编译源代码,加壳什么都没有,只有代码混淆),这个软件作者没要代码混淆。

工具

  1. jd-gui - 源代码查看http://jd.benow.ca/
  2. dirtyjoe - java binaries (.class 文件)更改http://dirty-joe.com/

破解过程

首先,运行软件,如图1:

使用jd-gui打开目录下的jar文件, 图2:

查看软件源代码可以看到软件的验证时通过LicenseValidator来实现的,如上图红框圈的部分

右键,使用7-zip解压并打开artblade.jar这个文件, 图3

使用dirtyjoe打开LicenseValidator.class文件,激活tab-methods,图4

由图2源代码中可以看到验证的语句在类LicenseValidator的初始化init方法中,故图4中双击打开init方法的代码段,快捷键ctrl+f搜索“Mac Address in license does not match your local machine”图5:

对比图2和图5代码对应二进制,图6:

双击ifne pos.00000170,将9A改为99, 双击ifeq pos.00000194将99改为9A,保存, 结果如图7:

将保存后的LicenseValidator.class文件拖入图3文件中覆盖原文件。运行结果如图8, 运行成功:

结语

此方法同样可用于破解android软件的apk文件,因为apk也是类似jar的zip打包文件。

你可能感兴趣的:(crack)