J2ME游戏若何破解?

5小时前 (07:49:58)阅读1回复0
路亚哦哦哦
路亚哦哦哦
  • 管理员
  • 注册排名7
  • 经验值94495
  • 级别管理员
  • 主题18899
  • 回复0
楼主

  比来换了一个新手机samsung F488E,末于能够在本身的手机上耍耍游戏了(以前开发J2ME的游戏,都是用的公司测试机)。于是疯狂的下载了一些合适触摸屏240*320的 java游戏,此中有一款RPG游戏玩得很高兴,可惜某些处所要发短信收费,一气之下动了破解的念头。

  以前做过J2ME的开发,熟知J2ME法式城市在最末发布的时候停止稠浊编译,一是制止法式被反编译,二是能够大大的减小法式包体积。

破解的构想很简单:找到现实挪用发送接口的办法,让它始末返回“发送胜利”,于是多种东西齐上阵就起头干了。

起首需要把class文件都反编译出来,java反编译东西良多,网上评论也不尽不异,但我试过良多,面临稠浊后的字节码,表示得都一样。

  我利用的是XJad。颠末一番查找,找到如许一个办法:

view plaincopy to clipboardprint?

private static boolean a(String s1, String s2)

MessageConnection messageconnection;

TextMessage textmessage = (TextMessage)(messageconnection = (MessageConnection)Connector。

  open(s1))。newMessage("text");

if (ad。a(messageconnection) || ad。a(textmessage))

return false;

textmessage。setAddress(s1);

textmessage。

  setPayloadText(s2);

messageconnection。send(textmessage);

messageconnection。close();

return true;

JVM INSTR pop ;

return false;

private static boolean a(String s1, String s2)

MessageConnection messageconnection;

TextMessage textmessage = (TextMessage)(messageconnection = (MessageConnection)Connector。

  open(s1))。newMessage("text");

if (ad。a(messageconnection) || ad。a(textmessage))

return false;

textmessage。setAddress(s1);

textmessage。

  setPayloadText(s2);

messageconnection。send(textmessage);

messageconnection。close();

return true;

JVM INSTR pop ;

return false;

毫无疑问,那就是现实发送短信的处所了。

  我曾试着把所有反编译过来的java文件中的错误全数改掉,里面有良多参差不齐的代码,最末天然是编译通过,但不克不及运行。

接下来,就要针对那个办法做处置了,有两个构想:一是间接修改字节码,把上述的"return false"的处所通盘改成"return true";二是在那个办法的起头加进那段代码"if(true)return true;"。

  那两个办法在理论上都是可行的。

0
回帖

J2ME游戏若何破解? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息