0x1 准备工作
首先触发报错,看报错的内容
在服务器上查看堆栈,以确定对应的文件
可以确定是UserDaoImpl.java中,并且目录是com.farm.authority.dao.impl 但并没有在找到 authority 相关的目录,而是在 lib 中找到了可能相关的jar,那么就需要破解看看了
0x2 反编译工具选择
- 使用 cfr 直接反编译出源码,推荐
- 使用 jar 命令解压出 class,再使用其他工具反编译出java源码,如 eclipse 的 Class Decompiler viewer,或者其他各种工具
其实如果代码没有加密等情况,有了源码就很好解决了,修改下判断就能达到我们的目的,但是如何编译回去又成了最大的问题
0x3 编译
因为我们没有整套的源码,如何把修改后的java文件编译成class是个大问题,大概尝试了有如下办法:
- 使用 javac 命令,但是一直提示有两个类型转换错误,而且 javac 没有办法跳过错误
- 听闻 eclipse 有跳过错误的功能,但是实际使用很复杂,保存后自动编译貌似也没通过
- 最后使用了 idea,它在源码中显示出了这两个错误的行,然后点击后还自动给修复了(貌似就增加了一个声明),最后编译成功。总体尝试下来推荐使用 idea
评论