请选择 进入手机版 | 继续访问电脑版
站点公告:

愤怒的小鸟2 破解思路

0
回复
3174
查看
[复制链接]

微信扫一扫 分享朋友圈

22

主题

22

帖子

260

积分

超级版主

Rank: 8Rank: 8

积分
260
发表于 2015-8-8 13:11:30 | 显示全部楼层 |阅读模式
这是基于国内版的,国内版的有验证,国外版本的不存在文件验证
破解思路:1.首先是签名验证,在Lcom/kunlun/spark/SparkTools;下有GetPackageSignature()Ljava/lang/String;方法,该方法作用获取签名值得md5,思路强行赋值:
return-object v2


改为
const-string v2,"0240bc48ece8dd1dd4367205ebf500a5" #签名md5 使用原签名log输出
return-object v2


2.文件验证,暂时没找到好的方法,提供个不太好的方法,也是我这次采用的方法,游戏运行时会对apk包做校检
修改验证文件指向路径,获取apk安装路径方法有很多,他这里采用Landroid/content/pm/ApplicationInfo;->sourceDirjava/lang/String;方法来获取路径,
我们把正版的包放到assets目录系并且命为“_data”下面提供在程序运行的时候将_data文件写入到sd卡下面(我提供的压缩文件中默认是data,因为此游戏assets中存在一个data的文件夹,所以命名为_data)
将原来的
iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->sourceDirjava/lang/String;


修改为:
    iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->sourceDirjava/lang/String;
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
    move-result-object v2
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    move-result-object v1
    const-string v2, "/xxxx.apk"
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0


然后在:Lcom/unity3d/player/UnityPlayerNativeActivity;的oncraet方法的开始添加

invoke-virtual {p0, p0}, Lcom/unity3d/player/UnityPlayerNativeActivity;->outapk(Landroid/content/Context;)V


再在我提供文件中的有个 out.txtt 文件打开复制全部内容,粘贴到这个文件的,的尾部
最后就是,把我提供文件中smali文件夹,复制合并到 反编译目录下的smali文件夹下即可。

回复

使用道具 举报

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

本版积分规则

扫描二维码下载客户端

扫描,关注官方微信

联系我们

010-88888888

24小时服务热线
客服QQ:84439723
市场部电话:13888888888

QQ|小黑屋|手机版|Archiver|爱技术分享 ( 港ICP备123456号 )

Powered by www.ijsfx.com © 2001-2018