软件破解(1)-Java篇

3/8/2017来源:ASP.NET技巧人气:3530

初识

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

工具

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

破解过程

首先,运行软件,如图1: 图1 待破解软件运行截图

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

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

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

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

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

对比图2和图5代码对应二进制,图6: 这里写图片描述

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

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

结语

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