软件破解(1)-Java篇

初识

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

工具
  1. jd-gui - 源代码查看http://jd.benow.ca/
  2. 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打包文件。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值