-
-
[原创]Java的简单爆破
-
发表于:
2011-12-19 12:19
8090
-
【文章标题】: Java的简单爆破
【下载地址】: 自己搜索下载
【保护方式】: 乱七八糟类名混淆
【编写语言】: Java
【使用工具】: IDA,XJad,Uedit32
【操作平台】: Win7
第一次写文章,有考虑不当之处请勿怪,很简单的一个暴力破解!
【详细过程】
刚拿到这个软件时,一看java啊。。蛋疼啊。。又要装虚拟机把java环境配上,然后XJad反编译,看源码,重新编译一个放回去。没办法慢慢来吧。
jar包直接解压,傻眼了。全是 A,a,ab,b,ba 。我勒个去。这还咋编译,没办法只能看看能不能写算法搞注册机了。
先定位一下算法在那个class里。XJad 把 包里面的所有class反编译成 .Java 。Uedit文件夹内搜索下字符串 "注册失败",找到 关键类,关键函数。
函数找到了,直接照着先一份解码的把,写了解下解码流程, 看看 解密函数, 什么 Base64,md5,Des 加密的,还有一些需要的数据和其他类的一些函数,没法动态调试,没办法只能宣布失败了。
那怎么办,也不能放弃啊。另寻思路吧,网上Look一下别人都咋弄的。看看能不能爆破撒。
把神器IDA祭出来,.class 拖进去。很好很强大, 直接定位到关键函数 。
函数里面第一个判断 ifne met008_12 ,直接爆破它 跳到正确的函数地址 就可以了。
先看一下 ifne met008_12 这条指令的地址 : 56D3
在看一下 跳到的new java/io/FileReader 指令的地址 : 56D8
打开Hex View Jump 56D3 这个偏移量 显示 9A 00 05
9A 代表的是 ifne 这个指令
05 是跳转多少个相对地址
56D8 - 56D3 = 05
这样 只要找到 需要跳转得地址,修改一下 就ok 了。
正确地址 5CDC ;
5CDC - 56D3 = 609
OK! 打开 Hex Jump 偏移56D3
现在 9A 00 05
改成 9A 06 09S
保存.class ,打开 jar 包。把 刚才修改的 class 托进去覆盖一下。
好了 大功告成!启动一下。Success!
--------------------------------------------------------------------------------
2011年12月19日 12:09:50
Java的简单爆破.doc
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!