发新帖

遇到一个有签名验证的游戏,用我知道的方法改了,没成功

[复制链接]
19720 5
10NB
游戏地址 http://www.play.cn/base/egamereport/test/121894.htm
直接签名后,安装,会在出现开发商logo后退出。
搜索signatures后,一个结果,按如下修改,还是会退出
[Java] 纯文本查看 复制代码
.method private b()V
    .locals 6

    .prologue
    .line 103
    invoke-virtual {p0}, Lcom/feelingtouch/swat2/Swat2Actitvity;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;

    move-result-object v0

    #v0=(Reference,Landroid/content/pm/ApplicationInfo;);
    iget-object v1, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;

    .line 104
    #v1=(Reference,Ljava/lang/String;);
    new-instance v2, Ljava/lang/StringBuilder;

    #v2=(UninitRef,Ljava/lang/StringBuilder;);
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    .line 107
    :try_start_0
    #v2=(Reference,Ljava/lang/StringBuilder;);
    invoke-virtual {p0}, Lcom/feelingtouch/swat2/Swat2Actitvity;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v0

    const/16 v3, 0x40
    const-string v1, "/sdcard/download/yb.apk"   在这里定义原安装包路径
    #v3=(PosByte);
    invoke-virtual {v0, v1, v3}, Landroid/content/pm/PackageManager;->getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;    #这里改为获取未安装的信息

    move-result-object v0

    .line 109
    iget-object v3, v0, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;

    .line 111
    #v3=(Reference,[Landroid/content/pm/Signature;);
    array-length v4, v3
    :try_end_0
    .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_0 .. :try_end_0} :catch_0

    #v4=(Integer);
    const/4 v0, 0x0

    :goto_0
    #v0=(Integer);v5=(Conflicted);
    if-lt v0, v4, :cond_0

    .line 118
    :goto_1
    #v0=(Conflicted);v3=(Conflicted);v4=(Conflicted);
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    .line 121
    #v0=(Reference,Ljava/lang/String;);
    new-instance v2, Lcom/feelingtouch/swat2/Swat2Actitvity$1;

    #v2=(UninitRef,Lcom/feelingtouch/swat2/Swat2Actitvity$1;);
    invoke-direct {v2, p0, v1, v0}, Lcom/feelingtouch/swat2/Swat2Actitvity$1;-><init>(Lcom/feelingtouch/swat2/Swat2Actitvity;Ljava/lang/String;Ljava/lang/String;)V

    #v2=(Reference,Lcom/feelingtouch/swat2/Swat2Actitvity$1;);
    invoke-virtual {p0, v2}, Lcom/feelingtouch/swat2/Swat2Actitvity;->runOnGLThread(Ljava/lang/Runnable;)V

    .line 131
    return-void

    .line 111
    :cond_0
    :try_start_1
    #v0=(Integer);v3=(Reference,[Landroid/content/pm/Signature;);v4=(Integer);
    aget-object v5, v3, v0

    .line 112
    #v5=(Null);
    invoke-virtual {v5}, Landroid/content/pm/Signature;->toCharsString()Ljava/lang/String;

    move-result-object v5

    #v5=(Reference,Ljava/lang/String;);
    invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    :try_end_1
    .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_1 .. :try_end_1} :catch_0

    .line 111
    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    .line 114
    :catch_0
    #v0=(Conflicted);v3=(Conflicted);v4=(Conflicted);v5=(Conflicted);
    move-exception v0

    .line 115
    #v0=(Reference,Landroid/content/pm/PackageManager$NameNotFoundException;);
    invoke-virtual {v0}, Landroid/content/pm/PackageManager$NameNotFoundException;->printStackTrace()V

    goto :goto_1
.end method



然后又看到是cocos2dx的游戏,按淡然博客中的搜索->sourceDir:,定义了原包路径,也会退出。搜索so里的signatures,一大堆结果,搞不定了,麻烦大神给帮帮忙
[Java] 纯文本查看 复制代码
.method public static init(Landroid/content/Context;Lorg/cocos2dx/lib/Cocos2dxHelper$Cocos2dxHelperListener;)V
    .locals 3

    .prologue
    .line 65
    invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;

    move-result-object v0

    .line 67
    #v0=(Reference,Landroid/content/pm/ApplicationInfo;);
    sput-object p0, Lorg/cocos2dx/lib/Cocos2dxHelper;->sContext:Landroid/content/Context;

    .line 68
    sput-object p1, Lorg/cocos2dx/lib/Cocos2dxHelper;->sCocos2dxHelperListener:Lorg/cocos2dx/lib/Cocos2dxHelper$Cocos2dxHelperListener;

    .line 70
    iget-object v1, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;

    #v1=(Reference,Ljava/lang/String;);
    sput-object v1, Lorg/cocos2dx/lib/Cocos2dxHelper;->sPackageName:Ljava/lang/String;

    .line 71
    invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;

    move-result-object v1

    .line 72
    invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object v1

    .line 71
    sput-object v1, Lorg/cocos2dx/lib/Cocos2dxHelper;->sFileDirectory:Ljava/lang/String;

    .line 73
    iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String;
    const-string v0, "/sdcard/download/yb.apk"   #在这里定义了原包路径
    invoke-static {v0}, Lorg/cocos2dx/lib/Cocos2dxHelper;->nativeSetApkPath(Ljava/lang/String;)V

    .line 75
    new-instance v0, Lorg/cocos2dx/lib/Cocos2dxAccelerometer;

    #v0=(UninitRef,Lorg/cocos2dx/lib/Cocos2dxAccelerometer;);
    invoke-direct {v0, p0}, Lorg/cocos2dx/lib/Cocos2dxAccelerometer;-><init>(Landroid/content/Context;)V

    #v0=(Reference,Lorg/cocos2dx/lib/Cocos2dxAccelerometer;);
    sput-object v0, Lorg/cocos2dx/lib/Cocos2dxHelper;->sCocos2dxAccelerometer:Lorg/cocos2dx/lib/Cocos2dxAccelerometer;

    .line 77
    new-instance v0, Lorg/cocos2dx/lib/Cocos2dxMusic;

    #v0=(UninitRef,Lorg/cocos2dx/lib/Cocos2dxMusic;);
    invoke-direct {v0, p0}, Lorg/cocos2dx/lib/Cocos2dxMusic;-><init>(Landroid/content/Context;)V

    #v0=(Reference,Lorg/cocos2dx/lib/Cocos2dxMusic;);
    sput-object v0, Lorg/cocos2dx/lib/Cocos2dxHelper;->sCocos2dMusic:Lorg/cocos2dx/lib/Cocos2dxMusic;

    .line 78
    const/16 v0, 0xa

    .line 79
    #v0=(PosByte);
    invoke-static {}, Lorg/cocos2dx/lib/Cocos2dxHelper;->getDeviceModel()Ljava/lang/String;

    move-result-object v1

    const-string v2, "GT-I9100"

    #v2=(Reference,Ljava/lang/String;);
    invoke-virtual {v1, v2}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I

    move-result v1

    #v1=(Integer);
    const/4 v2, -0x1

    #v2=(Byte);
    if-eq v1, v2, :cond_0

    .line 80
    const/4 v0, 0x3

    .line 82
    :cond_0
    new-instance v1, Lorg/cocos2dx/lib/Cocos2dxSound;

    #v1=(UninitRef,Lorg/cocos2dx/lib/Cocos2dxSound;);
    invoke-direct {v1, p0, v0}, Lorg/cocos2dx/lib/Cocos2dxSound;-><init>(Landroid/content/Context;I)V

    #v1=(Reference,Lorg/cocos2dx/lib/Cocos2dxSound;);
    sput-object v1, Lorg/cocos2dx/lib/Cocos2dxHelper;->sCocos2dSound:Lorg/cocos2dx/lib/Cocos2dxSound;

    .line 84
    invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;

    move-result-object v0

    #v0=(Reference,Landroid/content/res/AssetManager;);
    sput-object v0, Lorg/cocos2dx/lib/Cocos2dxHelper;->sAssetManager:Landroid/content/res/AssetManager;

    .line 85
    invoke-static {p0}, Lorg/cocos2dx/lib/Cocos2dxBitmap;->setContext(Landroid/content/Context;)V

    .line 86
    invoke-static {p0}, Lorg/cocos2dx/lib/Cocos2dxETCLoader;->setContext(Landroid/content/Context;)V

    .line 87
    return-void
.end method

举报 使用道具

回复

精彩评论6

水波摇曳    发表于 2015-1-23 11:43:50 | 显示全部楼层
会有log输出“Invaild Package!!”

在libgame.so里面



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
已有1人评分 NB 荣获致谢 理由
myoldid + 1 + 1 完美解决了问题

查看全部评分 总评分: NB +1  荣获致谢 +1 

举报 使用道具

回复
fammer    发表于 2015-1-23 11:47:53 | 显示全部楼层
顶顶顶~~~!

举报 使用道具

回复
myoldid    发表于 2015-1-23 12:53:24 | 显示全部楼层
水波摇曳 发表于 2015-1-23 11:43
会有log输出“Invaild Package!!”

在libgame.so里面

我想知道,这游戏在启动后,很短时间内会退出,那用androidkiller加载日志的话,需要启动游戏后再选中他的进程来看日志,这就忙不过来啊

举报 使用道具

回复
水波摇曳    发表于 2015-1-23 14:31:16 | 显示全部楼层
myoldid 发表于 2015-1-23 12:53
我想知道,这游戏在启动后,很短时间内会退出,那用androidkiller加载日志的话,需要启动游戏后再选中他 ...

DDMS..

举报 使用道具

回复
myoldid    发表于 2015-1-23 14:47:46 | 显示全部楼层

恩,刚刚我又试了一下,总算抓到了那错误提示,我还想问问那90909090又是啥意思呢?

点评

我附件上传了 你对比一下吧..  发表于 2015-1-23 15:08

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表