JAVA手机游戏短信收费JAR破解教程和破解软件平台下载

2012/8/31 22:45:00  人气 10334    怀旧国机论坛  
JAR破解原理
首先来了解下利用java实现短信发送的原理,这个使用的是j2me的可选包Wireless Messaging API(WMA,JSR120)来进行操作的,这是个敏感API,在未取得授权或认证,使用之前必须提示使用者是否要进行操作。对于有的型号的手机可以直接设置程序是否可以进行短信操作。所以一般来说,不会出现无缘无故发出短信而扣费的情况,除非你设置了总是允许操作这项(相信没几个人会这么做)。当然很多免费短信软件如悠信,XROSE什么的都是利用的这个API啦。
由于设置了短信的游戏中目的只是为了收费,而且一般一条短信的价格都不菲,但是很多地方不发短信又无法继续进行游戏,那么,如果想继续免费玩下去,就得对短信操作进行处理。(一般来说发短信和连网不一样,不是必须发才可以实现结果的,同样是进下一关,网络下载就是必须进行的操作,而短信买关就不一样,那关其实是存在的,但是必须进行这一操作才可继续玩)
首先是工具,必备的工具就是java反编译软件,UE或HEX等16进制编辑器,另外为了方便查看字节码还需要jclasslib。
首先我们来看一段代码,一般的短信发送都是类似的,当然,你也可以利用这个自己写个免费发短信的东西:)
import java.io.IOException;
import java.io.PrintStream;
import javax.microedition.io.Connection;
import javax.microedition.io.Connector;
import javax.wireless.messaging.*;
class SMSXX
{
String ph;
String s = “发送的内容“;
boolean isSend = false;
void sendSms()
{
MessageConnection messageconnection = null;
try
{
String s1 = “sms://“ + phoneNum;
TextMessage textmessage;
(textmessage = (TextMessage)(messageconnection = (MessageConnection)Connector.open(s1)).newMessage(“text“)).setAddress(s1);
textmessage.setPayloadText(s);
messageconnection.send(textmessage);
doSendOk();
}
catch(IOException _ex)
{
doSendFalse(); }
}
void doSendOk()
{
System.out.println(“Send Ok“);
isSend = true;
}
void doSendFalse()
{
System.out.println(“Send False“);
isSend = false;
}
}
通常,发送成功之后会有个判断或者是进行接着的方法,有的发送的方法本身就返回boolean变量,如果发送成功就返回true,反之就返回false。上面的例子属于一般情况,我们可以用以下几个思路来考虑。
1.发送成功后会运行doSendOk()方法,而发送失败就会运行doSendFalse(),那么我们只要把这两个方法的位置换一下,那么即使发送失败,那么程序仍然会运行doSendOk()方法。我们用jclasslib打开该class,然后查看sendSms()方法,看字节码:
0 aconst_null
1 astore_1
2 new #31 <java/lang/StringBuffer>
5 dup
6 ldc #33 <sms://>
8 invokespecial #36 <java/lang/StringBuffer.<init>>
11 aload_0
12 getfield #18 <SMSXX.phoneNum>
15 invokevirtual #40 <java/lang/StringBuffer.append>
18 invokevirtual #44 <java/lang/StringBuffer.toString>
21 astore_2
22 aload_2
23 invokestatic #50 <javax/microedition/io/Connector.open>
26 checkcast #52 <javax/wireless/messaging/MessageConnection>
29 dup
30 astore_1
31 ldc #54 <text>
33 invokeinterface #58 <javax/wireless/messaging/MessageConnection.newMessage> count 2
38 checkcast #60 <javax/wireless/messaging/TextMessage>
41 dup
42 astore_3
43 aload_2
44 invokeinterface #65 <javax/wireless/messaging/Message.setAddress> count 2
49 aload_3
50 aload_0
51 getfield #22 <SMSXX.s>
54 invokeinterface #68 <javax/wireless/messaging/TextMessage.setPayloadText> count 2
59 aload_1
60 aload_3
61 invokeinterface #72 <javax/wireless/messaging/MessageConnection.send> count 2
66 aload_0
67 invokevirtual #75 <SMSXX.doSendOk>
70 goto 78 (+8)
73 astore_2
74 aload_0
75 invokevirtual #78 <SMSXX.doSendFalse>
78 return

我们需要利用的就是67行和75行这两段,我们只要把这两段的位置换一下就OK。用HEX打开,定位(怎么定位请看我的另一篇文章,快速定位需要修改的16进制位置),
67行为:B6004B
75行为:B6004E
我们把004B和004E两个位置换下,保存,然后反编译看看,是不是OK了,接下来我们要做的是为了确保不发出短信出去(当然在有提示的时候按否也是一样的,但是为防止按错还是保险起见)把sms://这个改成其他字符吧,比如kim:// :),这样一运行到发短信的地方就发生异常,程序就运行catch中的doSendOk()了。
另外一种思路要你对流程很了解,不直接修改发送的代码,而是看doSendOk()和doSendFalse()这两个方法,既然发不出去会运行 doSendFalse(),而doSendFalse()和doSendOk()二者只是一个变量的区别,那么我们把doSendFalse()中的 isSend = false改成 isSend = true,不就是和doSendOk()只是方法名之间的区别了吗,同样道理,改完后再把sms改成其他东西。

共有 10 个附件

1.java游戏jar破解编译软件工具halo.rar(4.4MB)
点击下载(210次)
上面破解工具HALO,注意:HALO需要运行平台jdk-1_5_0-windows-i586支持(这步很重要)没有的绝客兄弟可以搜索找jdk-1_5_0-windows-i586
2.2012-08-31 22-27-50.jpg(24.6KB)
2012-08-31 22-27-50
第一:双击已下载好的HALO.EXE (电脑装JAR平台才打得开)
3.2012-08-31 22-28-14.jpg(17.8KB)
2012-08-31 22-28-14
选择文件名的 第一个打开JAR文件 在文件里选择你要破解的游戏.以反恐精英 做例子 如上边的图
4.2012-08-31 22-28-42.jpg(6.4KB)
2012-08-31 22-28-42
第二: 选择工具---配置--- 选择对JAR进行破解 --然后点确定 如图
5.2012-08-31 22-29-36.jpg(17.4KB)
2012-08-31 22-29-36
如果你想改变 收费的文字如图
6.2012-08-31 22-30-26.jpg(54.5KB)
2012-08-31 22-30-26
如果你想改变 收费的文字如图
7.2012-08-31 22-30-40.jpg(10.4KB)
2012-08-31 22-30-40
第三: 按-工程-编译-工程-打包 一定要这个顺序才可以 如图
编辑
8.2012-08-31 22-30-53.jpg(10.9KB)
2012-08-31 22-30-53
打包
9.2012-08-31 22-31-23.jpg(33.7KB)
2012-08-31 22-31-23
破解好游戏如下图寻找游戏 在games文件夹里
10.2012-08-31 22-32-12.jpg(21.1KB)
2012-08-31 22-32-12
用红色圈起来的那三个文件为:SRC PROJECT BUIID文件夹,破解中产生的,破解成功后可删除。
蓝的就是破解好的游戏

常见问题:
什么是破解游戏?破解游戏为什么玩的时候还是会提示要不要发送短信!
破解成功的游戏,在玩的时候他还是会提示你发不发短信,但我们按了确定短息是没有发送的,我们没有花钱得到了本身要发送短信才会得到的游戏内容或者虚拟物品!没有破解的游戏在按确定发送时会出现系统提示,而破解的游戏会直接显示短信发送成功,当没发送短信。
要是为到底有没有破解怕短信还是发送出去,我们可以调离线在去按确定发送在去通讯记录看看没有短信发送记录的话,恭喜你游戏破解成功了。
破解了就不收费了吗?
我看了又点不明白的。在改字那里只是把字改了。系统设置还是会按以前的那种发短信到游戏公司的吗?
【以破解过的游戏在破解遇到发短信收费的地方游戏会退出】那还可以继续玩吗?
破解好的游戏 他提示你要发短信不,你按要发,其实短信是没发的.破解短信收费的游戏都是这样的
洞房(ID1000)取消置顶此贴12-04 12:24   更多

. 请牢记绝客网域名:jkniu.com jkmrp.com

发表回复

   


  通知楼主

30楼

刀情小王子.08-12 21:54
点点滴滴

回复只看TA

29楼

绝客网157556.07-23 08:30
支持!顶顶顶顶

回复只看TA

28楼

扯一呗.10-24 11:59
.个人觉得自己的

回复只看TA

27楼

◆繁花べ顶帖组べ葬爱.05-23 08:17
看帖回帖是美德!

回复只看TA

26楼

ベ暗夜精灵、【小影】.04-21 10:36
这帖不错,该顶!

回复只看TA