资源描述:
《用halo2进行手机游戏短信破解的心得》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、转至手游坛里关于手机短信游戏破解的文章有很多,而且很有水平,令人高山仰止!实不想班门弄斧,恐招千夫所指!但HALO2的推出给破解工作带来了许多便利,有必要向新手们介绍下,本人水平有限,文中不足之处请多多包涵!郑重声明:文中所引用的例子谨作为学习交流,并无它意! 用HALO2打开底下城与勇士.jar,点击"类编辑器",在"编辑"选项中选"全文查找",在搜索栏中填入"MessageConnection",搜索方式选"Bytotalclass",开始搜索!(图1)搜索结果如下:(图2)其中"类名 j "是指该方法在JAR包根目录下的j.class. "方法名 f "
2、就是指该方法名为"f". "签名"是对该方法的描述,是区别于同一个class文件里同名方法唯一表述.我们反编译j.class,找到这个"f"方法,它的起首行"privatevoidf(inti1)"表明它的使用权限为"私有的"(private),而public指公共的,friendly指友好的,protected指受保护的!具体的说明请参考专业的教材.void是指该方法的返回类型,也就是别的方法调用该方法所得到的东西,void意味着“什么也不返回",但也可返回一些变量值或其它结果.具体的要结合程序分析.比如"boolean"就表示它返回的就是布尔值,即真(true)和假
3、(false).具体的说明也请参考专业的教材.括号里的(inti1)是该方法的自变量列表.自变量列表规定了我们在调用这个方法时传递给它的东西.对于本方法inti1是指:给该方法传递一个整型变量(int),变量名是i1. 让我们双击这个搜索结果来到j.class下的privatevoidf(inti1)方法.点击这个"f"方法(不是它的下层目录"[0]code"!!!)上面所说的东西如图3. 以下是反编译后程序: privatevoidf(inti1) { b=i1; a=false; MessageConnection
4、messageconnection=null; Objectobj=null; if(l==0) { h="sms://"+d[0]; i="JG"+e+""+f+"#"+g; l=1; }else if(l==1) { h="sms://"+d[1]; i="62"+e+""+f+"#"+g; l=0; } try
5、{ TextMessagetextmessage; (textmessage=(TextMessage)(messageconnection=(MessageConnection)Connector.open(h)).newMessage("text")).setPayloadText(i); messageconnection.send(textmessage); } catch(Exception_ex) { b=0; }
6、 try { messageconnection.close(); } catch(Exception_ex){} a=true; } 其中:try { TextMessagetextmessage; (textmessage=(TextMessage)(messageconnection=(MessageConnection)Connector.open(h)).newMessage("text")).setPaylo
7、adText(i); messageconnection.send(textmessage); } catch(Exception_ex) { b=0; }是检查是否进行了发送短信动作,如果没发送就抛出异常并将变量b赋值为0(b=0). 而下一段:try { messageconnection.close(); } catch(Exception_ex){}