由于要去学习路由器相关的漏洞利用技术的学习,而许多的路由器都是 mips架构
的,IDA
又不能反编译 mips
, 发现 jeb
的新版支持 mips的反编译
,于是去官网申请一个试用版,试用版的限制还是比较多的,比如 使用时间验证
,没法复制粘贴
等,于是想尝试看看能否破解,同时填了 java破解
这个坑。
博客地址:
https://jinyu00.github.io/
本文主要记录的是破解过程中的思路和使用的一些工具,技巧。文末有处理后的数据。
jeb
的主要逻辑在 jeb.jar
中,该文件会在程序运行起来后释放到程序目录中的其中一个子目录下,使用 Everything
搜 jeb.jar
就可以找到文件的位置。找到文件后就可以逆向分析了。本文重点不在逆向这方面,而是要介绍我破解这个软件的一个大概的流程。
下面介绍几个在整个流程中起到重要作用的工具。
试用版的一个最无语的限制就是必须要联网才能使用,不联网就会直接退出了,就是如此暴力。但是这对我们来说则是绝佳的条件。我们可以使用 Btrace hook java.lang.System.exit
函数,然后打印堆栈信息,就可以定位到在退出前所调用的方法,一般来说,在方法之间肯定会有离关键方法很近的方法,或者直接就是我们要找的目标方法。
这个是之前破解的,现在我重新测试时,提示 超过试用期
,然后就退出了。
不管怎样有异常就好,然后hook java.lang.System.exit
打印堆栈信息就可以看到一些jeb自己写一些方法的的信息了。
Btrace脚本如下
这里有个小问题,如果你是通过运行jeb_wincon.bat 或者 jeb.exe来启动jeb的话你是看不到他开启的 java进程的,所以可以使用 everything
搜索org.eclipse.equinox.launcher*jar
然后运行那个 jar 包就可以正常的找到 jeb启动的 java 进程
了,这样我们才可以使用 Btrace 脚本进行 hook. 至于为什么是这样的,我也不记得当初是怎样找到的。可以去逆向 jeb.exe
或者 看使用 org.eclipse.equinox
开发的教程可以弄清楚。其实通过 Btrace
然后配合着静态分析就可以解决这个软件了我认为。
Jeb里面会使用一个函数对字符串进行加密,所以在逆向的时候会很不方便,当初我是用 IDEA 调试它,然后 在 IDEA 的调试环境里面,调用解密函数(使用IDEA的自带的功能),把加密后的字符串解密后,然后再分析的。
使用IDEA调试其实非常简单,我们只需要先新建一个 project , 然后把相关的jar包添加到 Project 的 lib, 然后调用 jar 包中的函数即可。比如
信息比较杂,看我画圈的那段代码即可。然后进入想要下断点的位置,正常的下个断点就可以了。
比如我们已经知道,程序权限校验的关键逻辑在 jeb.jar中,我们直接调用 jeb.jar中的 main 方法,然后进去调试里面的代码即可
赏心悦目的调试,美滋滋。分析或者调试 jeb.jar
,就可以找到 字符串加密的那个方法。
如果没有目标,我们可以使用 Btrace hook 这个函数,打印他的返回值,就可以看到程序中各种被解密后的字符串了。脚本如下
经过各种翻看代码,调试, Hook, 终于找到一些可能是比较关键的函数,我们该怎么办呢? 这时可以使用 javassist
来修改目标 方法。
比较懒,把破解 JEB 期间的所有代码都放到 一个 函数里面了,做了一定的注释。
运行后会在工程目录生成一个文件夹,以你修改的类名为目录结构。
把这些 class文件替换到来的 jar 包里面就可了。
可以使用 winrar 把 jar 包打开,找到对应目录,拖进去替换就行了。
替换之后要去 META-INF 删掉一些东西。具体看下图
这样就完成了jar包的修改。
最后说下静态分析jar包的工具,使用 JEB 就可以。首先把jar 转换为 dex.
dx.bat --dex --output=d:\dst.dex src.jar
然后拿起jeb分析就行了。
如果你看到了这里,并且按我前面所说的方式一步一步破解了jeb, 那么恭喜你和我一样被坑了。弄得差不多的时候,我发现有一个神奇的类。
com.pnfsoftware.jeb.client.Licensing
瞬间爆炸,我们只要修改这里的函数的返回值,或者直接重写这个类,就可以基本搞定这款软件了。52破解上的 jeb 2.2.7 中延长使用时间 就是修改的这个类的方法(后面才看的,悲伤~~)
编译后 Class文件,点我 ,用它去替换jeb.jar中的相应文件即可,具体替换方法,文中有介绍。
分析过程的一些笔记
分析过程中的另外的 Btrace脚本
最新版的 bin
请看这:
https://jinyu00.github.io/2017/10/27/crack_jeb_mips_2_3_7.html
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)