java应用破解之破解 jeb mips 2.3.3
前言
由于要去学习路由器相关的漏洞利用技术的学习,而许多的路由器都是 mips架构
的,IDA
又不能反编译 mips
, 发现 jeb
的新版支持 mips的反编译
,于是去官网申请一个试用版,试用版的限制还是比较多的,比如 使用时间验证
,没法复制粘贴
等,于是想尝试看看能否破解,同时填了 java破解
这个坑。
本文主要记录的是破解过程中的思路和使用的一些工具,技巧。文末有处理后的数据。
正文
jeb
的主要逻辑在 jeb.jar
中,该文件会在程序运行起来后释放到程序目录中的其中一个子目录下,使用 Everything
搜 jeb.jar
就可以找到文件的位置。找到文件后就可以逆向分析了。本文重点不在逆向这方面,而是要介绍我破解这个软件的一个大概的流程。
下面介绍几个在整个流程中起到重要作用的工具。
Btrace
—-> hook java系统函数,打印堆栈,找关键方法javassist
—-> 修改字节码IDEA
——> 动态调试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脚本
|
|
本站文章均原创, 转载注明来源
本文链接:http://blog.hac425.top/2017/10/23/crack_jeb_mips_2_3_3.html