【文章标题】: 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