Coco2d-x引擎是相对于Unity3D的又一实力派引擎,虽然随着3D游戏的热门,更多的厂商偏向于Unity3D,但是Coco2d-x的普及量也不容小觑,特别是一些比较大的手游公司,比如触控科技仍然一直沿用着Coco2d-x的东西。我们从三个热门游戏来说说Coco2d-x游戏的一般文件验证方法。
1、捕鱼达人2:将Smali文件中获取包路径的参数转向我们自定义的。
该种方法最早见于:http://bbs.csdn.net/topics/390598569?page=2#post-395954285
竟然闪退那必然会在主Activity的oncreate中启动相关代码。下面是流程:
public class FishingJoy extends FishingJoyWrapper-->public class FishingJoyWrapper extends Cocos2dxActivity-->public abstract class Cocos2dxActivity extends Activity;
注意:class A extends B 表示A类承接B类,即B是A的相对父类。从而知 Cocos2dxActivity 是程序启动时的根类,查看 oncreate 方法:
protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
init();
Cocos2dxHelper.init(this, this);
}
又转向至 Cocos2dxHelper 类的 init 方法中,下面是其主要的smali代码:
<pre name="code" class="javascript"> //“参考文章:http://android.tgbus.com/Android/tutorial/201108/362210.shtml”
//通过ApplicationInfo类中的packageName方法获取程序名称并保存在sPackageName字符串中
iget-object v1, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
sput-object v1, Lorg/cocos2d