和平社区

 找回密码
 注 册

QQ登录

只需一步,快速开始

查看: 1404|回复: 6

声明,转的。破解短信收费游戏

[复制链接]
发表于 2009-5-6 19:02:18 | 显示全部楼层 |阅读模式
昨天修改代码破解了一个手机游戏非常兴奋 今天早上又破解了一个 兴奋ing~~~
感觉网上的有的教程写得不够明确
下面以这2个程序为例简单写了个教程(只时候新手) 有心想学的可以看看

必备软件(仅以用迅雷下载,新建任务后复制本地URL即可):
Halo2.0[带自动破解] - Halo2.rar
http://e0rrxq.blu.livefilestore. ... /Halo2.rar?download
Halo2.0[不带自动破解,但使用稍微方便一点,经常修改代码的用这个] - Halo2.0.rar
http://e0rrxq.blu.livefilestore. ... %202.0.rar?download
使用该软件必须装一个JAVA控件(官网下载,放心安装和使用) http://www.java.com
反编译器DJ JAVA Decomplier(天空软件站) http://www.skycn.com/soft/4645.html
激活补丁 - parch.exe
http://e0rrxq.blu.livefilestore. ... jW_ZMP0A8/patch.exe

破解方法:
=============方法一(最简单、最常用)=============

工具>>配置>>对jar进行破解[勾上]>>应用>>确定
打开你要破解的游戏(jar)

编译>>打包
最后在games文件夹里面就可以找到破解掉的游戏了
该方法只能破解短信收费游戏,而且只是一部分

=================方法二=================
首先打开一个jar(这里暗黑II女巫版-anheiII.jar未破解)文件,在Class Editor(类编辑器)里面 查找(编辑>>全文查找)输入sms,Search Mode选则By total classes(在所有类里查找)

可以得到如下4个结果

一个一个双击查看对应的语句和参数,可以发现第一个的参数为"sms://",很明这个就是发送短信的关键字了(另外几个只是叙述性的文字),不客气了,点编辑(高级),把里面的"sms://"改为"fms://"(注意不要加空格等符号,改后个部分颜色没有变),这样就去掉了发送短信的指令。记得点保存方法!
然后,在所有类里查找setAddress或者messageconnection(找这2个词只是为了寻找收费文件位于哪一个类里面)
这里查找messageconnection得到如下3个结果

一个一个双击发现3个都在一个类文件里面,用DJ Java Decomplier打开这个类文件(n.class)
Setting>>Decomplier Settings,勾上之后再打开文件可得到源代码和字节码对照

这样就能看到class的源代码了,仔细看会发现下面的代码
     public final synchronized void a(String s1, String s2)
    {
        s = "fms://" + s1;   --------刚刚修改的结果
    //    0    0:new             #25  
    //    1    3:dup            
    //    2    4:ldc1            #5   
    //    3    6:invokespecial   #54  
    //    4    9:aload_1         
    //    5   10:invokevirtual   #55  
    //    6   13:invokevirtual   #56  
    //    7   16:putstatic       #51  
        if(s2 == null || s2.equals(""))
    //*   8   19:aload_2         
    //*   9   20:ifnull          32
    //*  10   23:aload_2         
    //*  11   24:ldc1            #3   
    //*  12   26:invokevirtual   #53  
    //*  13   29:ifeq            35
            s2 = "[WARN] Error formatted message!";
    //   14   32:ldc1            #4   [WARN] Error formatted message!">
    //   15   34:astore_2        
        r = s2;
    //   16   35:aload_0         
    //   17   36:aload_2         
    //   18   37:putfield        #50  
        q = 0L;
    //   19   40:lconst_0        
    //   20   41:putstatic       #49  
        a = false;
    //   21   44:iconst_0        
    //   22   45:putstatic       #35  
        d = false;
    //   23   48:iconst_0        
    //   24   49:putstatic       #37  
        e = false;
    //   25   52:iconst_0        
    //   26   53:putstatic       #38  
    //   27   56:return         
    }
很容易发现后半部分代码就是发送失败后的操作。先前把sms://改为了fms://必然导致发送错误,现在要做的就是修改发送错误之后的代码将其改为发送正确的操作就行了。再看看后面的代码,再明确不过了,把这里的3个false改成3个true就ok了。
回到halo找到对应的字节码(这里是修改a()这个函数,所以要在左边选方法>>a>>[0]code,注意右边的字节码跟上面的对照一下应该是相同的)

就是44:iconst_0,48:iconst_0,52:iconst_0,双击后值改为1。

保存方法!
最后编译>>打包
这样就全部破解完了,把游戏下在手机里试试吧。
提醒:如出现发送短信给106*****等类似信息点取消,说明破解失败
这种方法的思想很明确:先让短信发送失败,然后修改失败后的处理代码,将其改为成功时的代码
当然,至于具体到每个游戏怎么发现和修改收费代码,也只有靠大家自己的理解了。
发表于 2009-5-6 19:34:38 | 显示全部楼层
不懂,顶一个
发表于 2009-5-7 08:45:59 | 显示全部楼层
//    0    0:new             #25  
    //    1    3:dup            
    //    2    4:ldc1            #5   
    //    3    6:invokespecial   #54  
    //    4    9:aload_1         
    //    5   10:invokevirtual   #55  
    //    6   13:invokevirtual   #56  
    //    7   16:putstatic       #51  
        if(s2 == null || s2.equals(""))
    //*   8   19:aload_2         
    //*   9   20:ifnull          32
    //*  10   23:aload_2         
    //*  11   24:ldc1            #3   
    //*  12   26:invokevirtual   #53  
    //*  13   29:ifeq            35
            s2 = "[WARN] Error formatted message!";
    //   14   32:ldc1            #4   [WARN] Error formatted message!">
    //   15   34:astore_2        
        r = s2;
    //   16   35:aload_0         
    //   17   36:aload_2         
    //   18   37:putfield        #50  
        q = 0L;
    //   19   40:lconst_0        
    //   20   41:putstatic       #49  
        a = false;
    //   21   44:iconst_0        
    //   22   45:putstatic       #35  
        d = false;
    //   23   48:iconst_0        
    //   24   49:putstatic       #37  
        e = false;
    //   25   52:iconst_0        
    //   26   53:putstatic       #38  
    //   27   56:return         
    }




看到这些头都昏了
发表于 2009-5-7 08:56:28 | 显示全部楼层
那是代码来的  还挺复杂的
发表于 2009-5-7 09:04:35 | 显示全部楼层
看的头晕,宁愿收费
发表于 2009-5-7 15:18:20 | 显示全部楼层
什么乱七八糟的.?
懵懵的..!
发表于 2009-5-7 15:25:09 | 显示全部楼层
打手机弄坏了低不来。
您需要登录后才可以回帖 登录 | 注 册

本版积分规则

站点统计|小黑屋|手机版|Archiver|和平家园 ( 粤ICP备13078947号-1 )

GMT+8, 2024-11-25 08:45 , Processed in 0.016304 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表