首页
社区
课程
招聘
[原创]Java的简单爆破
发表于: 2011-12-19 12:19 8090

[原创]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


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (4)
雪    币: 147
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
奇怪了。。。  在里面 看的 挺 齐 的呀。  现在 咋不 对齐了。
失败失败。。。 图片 也没了。。
2011-12-19 12:22
0
雪    币: 111
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
word里面有图片,谢谢分享
2011-12-21 09:59
0
雪    币: 162
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢,学习了
2012-4-10 12:14
0
雪    币: 162
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
把修改过的class托进jar文件里边,运行不起来了,CRC32也改成原先的了,也不行
2012-4-10 16:06
0
游客
登录 | 注册 方可回帖
返回
//