一个禁止在模拟器运行游戏的解决方法.doc_第1页
一个禁止在模拟器运行游戏的解决方法.doc_第2页
一个禁止在模拟器运行游戏的解决方法.doc_第3页
一个禁止在模拟器运行游戏的解决方法.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大D在和谐游戏研究室发了个游戏,本身收费很容易破解,用HALO就可以搞定了,但游戏不能在模拟器运行,开头动画完毕后提示请使用手机运行游戏.然后游戏就不动了,如果是手机会提示按任意键继续.如图: 在HALO里搜索请使用手机 这个关键词,得到结果在g类的b方法里,我用DJ反编译了源代码,其它没有什么特别.有一句Runtime.getRuntime().totalMemory(),比较特别以前从没见过,到GOOGLE查了下,这句是用来得到当前JAVA虚拟机正在使用的内存大小,那就很清楚了,如果正在使用的内存大小大于用来对比的的内存,也就是6M,那就不是手机,因为手机上JVM的内存只有几十K,百K或1-2M,没有太大的,因为J2ME本来就是为小内存掌上设备设计的.把思想定位在这里了,因为这没办法用HALO的字节码来讲清楚,只能用JAVA代码来讲,大家见谅,这只是个思路,看代码.这是q方法的代码:private void q(Graphics g1) if(bh = 0) a(0, g1); if(bi = 99) int i1 = o.F - p.c; int j1 = (o.G - p.d) + 42; o.p.a(o.c, g1, i1, j1); o.o.a(o.c + 20, g1, i1, j1); return; bg.a(bi, g1, 120, 160); if(p.p = 99) if(Runtime.getRuntime().totalMemory() 20 6L) if(w % 4 2) game.util.a.a(g1, u8BF7u4F7Fu7528u624Bu673Au624Du80FDu7EE7u7EEDu6E38u620F, 120, 278, 65, 0, 0xffffff); else game.util.a.a(g1, u8BF7u4F7Fu7528u624Bu673Au624Du80FDu7EE7u7EEDu6E38u620F, 120, 278, 65, 0, 0xffff00); else if(w % 4 2) game.util.a.a(g1, u4EFBu610Fu952Eu7EE7u7EED, 120, 278, 65, 0, 0xffffff); else game.util.a.a(g1, u4EFBu610Fu952Eu7EE7u7EED, 120, 278, 65, 0, 0xffff00); if(w 20 6L) if(w % 4 2) game.util.a.a(g1, u8BF7u4F7Fu7528u624Bu673Au624Du80FDu7EE7u7EEDu6E38u620F, 120, 278, 65, 0, 0xffffff); else game.util.a.a(g1, u8BF7u4F7Fu7528u624Bu673Au624Du80FDu7EE7u7EEDu6E38u620F, 120, 278, 65, 0, 0xffff00); else if(w % 4 20 6L) if(w % 4 2) game.util.a.a(g1, u8BF7u4F7Fu7528u624Bu673Au624Du80FDu7EE7u7EEDu6E38u620F, 120, 278, 65, 0, 0xffffff); else game.util.a.a(g1, u8BF7u4F7Fu7528u624Bu673Au624Du80FDu7EE7u7EEDu6E38u620F, 120, 278, 65, 0, 0xffff00); else if(w % 4 20 6L这句,那不让在模拟器运行肯定也用了这个,全文搜索runtime,看到那个大X了吧上面的q方法我们已经改过了,现在看下X()方法的源代码.private void X() label0: if(bi = 99) o.o.a(o.c + 20, 1); if(!o.o.b(o.c + 20) break label0; else bg.a(bi, bj); if(bj != -1 | !v() & (bj = -1 | !bg.b(bi) break label0; if(Runtime.getRuntime().totalMemory() 20 6L) return; bk = false; r.a = false; 看到那句了吧,这个方法是真正判断模拟器的,我们把if(Runtime.getRuntime().totalMemory() 20 6L) return;这两句删掉就可以了.我觉得这个就用不着用DJ看JVM来对比了.在HALO里双击搜

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论