吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15545|回复: 29
收起左侧

[Android 原创] U3d游戏『裤衩之心』简单修改过程

  [复制链接]
spguangz 发表于 2015-8-18 22:28
本帖最后由 spguangz 于 2015-8-19 01:12 编辑

前言:『裤衩之心』这款游戏半年多前就呆在我的云盘里了,然而没玩完,因为舍不得花钱激活完整游戏                           而且那时初学了安卓逆向,就想自己破解咯,然而技术欠缺,一直没完成破解。
             12.png
            还好不久之后的2015年2月初,我大52破解论坛开放注册了!我成为了其中一员!然后开始学习。
            凭着学到的知识,我摩拳擦掌......然而还是没完成此游戏的攻破!因为那时快过年了
            其实是因为它是个U3d游戏,不能单靠修改smali来破解,dll文件的破解才是关键。
            今天用云盘下载东西时发现了它的存在,顺便尝试破解。

来源:和游戏搜索下载
工具:Android Killer,.NET Reflector 8.4


0x0 试玩

游戏第2个地图的第1关玩完后,需购买游戏。而且游戏金币不好赚啊,升级装备会花费很多金币。
于是本游戏的2个主要修改地方:1.免激活,2.修改为无限金币。
20150818_173244.png

0x1 免激活游戏

反编译游戏,由\assets\bin\Data\Managed\UnityEngine.dll等文件判定为Unity3D游戏。
用.NET Reflector加载其中的Assembly-CSharp.dll,或者全部dll文件都加载,因为它们之间有关联。
因为要购买游戏,先试试搜索"billing"。点击第2个按钮(Search Member)搜索。
13.png
双击 OnBillingResult查看代码。
[HTML] 纯文本查看 复制代码
private void OnBillingResult(string result)
{
    Debug.Log("BillingResult=" + result);
    char[] separator = new char[] { '|' };
    string[] strArray = result.Split(separator);
    if ("3" == strArray[1])
    {
    }
    if ("1" == strArray[1])
    {
        this.trialEndClosed = true;
    }
}

看到this.trialEndClosed = true;这句,想到游戏trialEnd(试玩结束)后才会提示购买游戏。
于是这时的思路:1.使游戏trialEnd后也无需购买游戏。2.无限延长试玩时间,使trialEnd永远不到来。
搜索"trial"。依然点击第2个按钮(Search Member)进行搜索。
14.png
双击TrialEnded查看代码。
[HTML] 纯文本查看 复制代码
private bool TrialEnded()
{
    return (EpicSettings.trial && ThroneRoomData.Load().IsCastleCompleted("Key Castle B1"));
}

分析大意为:Castle B1完成后,试玩结束。
上面提到:游戏第2个地图的第1关(关卡2-1)玩完后,需购买游戏。
这Castle B1就是关卡2-1的意思,所以可把B1改大点,这样整个游戏都玩完了,因还在"试玩期",故不需购买游戏了。
这是个字符串(ldstr)的修改:
333.png

这样修改后,关卡26-1完成后,才是试玩结束(实际此游戏才4个地图,最后1个地图才1关!)
数据修改后,按update,再保存Assembly-CSharp.dll,把其放回原来的文件夹,回编译。
至此完成游戏的免激活操作。

0x2 修改为无限金币

游戏的金币主要用于升级装备(攻击,防御,生命等),全升级才用2-3W,那修改为9W好了。
搜索"gold"。
搜狗截图20150818193441.png
看到get_currentGold,就是获取当前金币数量的意思,双击进入
[Asm] 纯文本查看 复制代码
public int get_currentGold()
{
    return this.gold;
}

这句代码很简单,修改为return一定的值(Ldc.I4)即可。
666.png
数据修改后,按update,再保存Assembly-CSharp.dll,把其放回原来的文件夹,回编译。

原心想修改无限金币要成功了,进入游戏后,去到升级装备界面查看金币数量,果然成功了,有99,999个金币!
等等,感觉有什么不对路,怎么升级装备的按钮是灰色的!
你可以体会到自己有1千万,但不能使用的感受吗?是的,我也没有体会过!
那说明这只是返回金币的显示值而已,不是金币的数值。看来还得进一步分析了。

[Asm] 纯文本查看 复制代码
public int get_currentGold()
{
return this.gold;
}


点击其中的gold后,再点击Analyze按钮进行分析。
去到used by,看它被谁调用--
搜狗截图20150818201938.png
看到最后的Start,右击Start,选择go to member,查看游戏开始时的代码。
[XHTML] 纯文本查看 复制代码
public void Start(King player)
{
    this.gold = player.GetStatAsInt("Gold");
    foreach (string str in this.trackProgress.Keys)
    {
        DiceworkDebug.Log(str + ": " + this.trackProgress[str], null);
    }
}

这时在this.gold = 后修改为一定的值(Ldc.I4)即可
搜狗截图20150818202628.png
删掉02和03行,在01行改,改法同上面的99999图。
修改后--
[XHTML] 纯文本查看 复制代码
public void Start(King player)
{
    player.gold = 99999;
    foreach (string str in this.trackProgress.Keys)
    {
        DiceworkDebug.Log(str + ": " + this.trackProgress[str], null);
    }
}


ps--此处删掉03行,在02行改,修改后看到的代码是一样的,但游戏会崩溃!

20150818_173835.png


这次成功了,金币永远是99999。

ps2--游戏金币的显示有2处:游戏右上角和升级装备界面。前者由存档的Gold数值决定,后者由get_currentGold决定。
        因初始存档无Gold数值,故初入游戏时,右上角显示金币为0,直到进行了装备的升级。升级装备界面一直为99999.

至此无限金币的修改操作完成。

0x3 其他
.NET Reflector下载:http://down.52pojie.cn/Tools/NET/
.NET Reflector指令:http://www.cnblogs.com/flyingbirds123/archive/2011/01/29/1947626.html




点评

这个写得不错,点赞~~  发表于 2017-5-2 22:50

免费评分

参与人数 14威望 +3 热心值 +14 收起 理由
yuluo5566 + 1 我很赞同!
我love破戒 + 1 我很赞同!
bet365china + 1 谢谢@Thanks!
v337392508v + 1 我很赞同!
katkat + 1 我很赞同!
ヽ潴ノヽ戒゜ + 1 我很赞同!
HG那些年 + 1 已答复!
jojaajj + 1 论坛禁止点将!
爹临死前说 + 1 楼主 我想知道 裤衩之心 是什么意思...
Kimipoker + 1 热心回复!
龙骑统帅 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
angellball + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
Ericky + 3 + 1 希望再接再厉 加油
tredawn + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| spguangz 发表于 2015-8-19 16:47
bai123tt 发表于 2015-8-19 15:32
不错,能提供修改前的文件下载就好了,其他人可以拿去练手

有啊 本文写了:和游戏搜索下载
 楼主| spguangz 发表于 2015-8-18 22:36
阿泰 发表于 2015-8-18 22:34
表述很厉害的说,支持楼主,但,有没成品呀?

有啊 我正上传 迟下可以去原创发布找找
阿泰 发表于 2015-8-18 22:34
表述很厉害的说,支持楼主,但,有没成品呀?
吊儿郎当~ 发表于 2015-8-18 22:40
      以后就不怕花钱玩游戏了
红狼8009 发表于 2015-8-18 22:49
谢谢分享!!学习下!!要是能有其他类型的游戏修改教程就好了!
疯桦绝代 发表于 2015-8-18 23:24
楼主可以的 !起码自己在学习技术了 我这种伸手党比不了
LoongKing 发表于 2015-8-18 23:28
楼主学习速度神速.
1789912406 发表于 2015-8-19 10:34 来自手机
感谢分享呀
头像被屏蔽
Kimipoker 发表于 2015-8-19 12:55
提示: 作者被禁止或删除 内容自动屏蔽
izisak 发表于 2015-8-19 14:23 来自手机
很给力,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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