吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4799|回复: 1
收起左侧

[会员申请] 申请会员ID:洛言

[复制链接]
吾爱游客  发表于 2019-7-12 17:19
1、申请ID:          洛言
2、个人邮箱:      173718794@qq.com
3、文章:
(看到论坛一篇Net逆向,就跑过来水一下,看下能不能过233)

工具:
1、dnSpy
2、Notepad++(笔记本应该也行)

目标:(游戏:Rmlyc3QlMjBTdHJpa2UlMjBGaW5hbCUyMEhvdXI=)
把某人没有填上的 “扫描无冷却” 给填上


正文:

最开始肯定是用dnSpy载入 Assembly-CSharp.dll 啊(笑

(然后对着一堆命名空间一脸懵逼)

我们也不可能一个个函数去看,所以得用到强大的搜索工具,先查一下扫描的英文

(剧透狗:然鹅都不是)

一个个看
然后发现没一个是
有几个很像的是Iron Dome,这是一个超武,直接略过


然后线索就断了
没错,断了
但是一切功能都在游戏里面有体现
我直接看看游戏的文本就行了

打开游戏后,我发现我实在是太嫩了
战术高亮系统

得,我查查

(然鹅P都没有)

几经思考,我决定翻游戏的文本文件
翻了翻目录
一下子就找到了(熟练地打开了StreamingAssets)

点进去,Zh-hans,打开Localizable.strings
先用Notepad++试试(然后上垒了)

吐槽:众所周知,StreamingAssets的文件不会被加密
所以一下子就打开了



找到对应科技的名字
对比一下
特征码是 “09_TN”
8用说,直接搜字串符

跳转到指定函数
[C#] 纯文本查看 复制代码
public void HighlightTechSelection(TechTree.Branches branch, int level_onebased)
{
        this.upgradebutton.SetActiveRecursively(false);
        if (this.techTree.BranchIsAvailable(branch))
        {
                string branchLetter = this.GetBranchLetter(branch);
                if (level_onebased > 0)
                {
                        base.StartCoroutine(this.DecodeText(LocalizationManager.getLocalizedString("09_TN_" + ((int)(branch * (TechTree.Branches)5 + (level_onebased - 1))).ToString(), "---"), this.techtreetext[0], 0.02f));
                        /*废话*/
                }
                /*废话*/
        }
}


唉哟,上面的techTree真显眼,毫无疑问,这肯定很重要,毕竟branch是TechTree.Branches类型的,二话不说肯定点进去啦!

太棒了,是科技类型
往上翻翻,一下子就找到了ApplyResearch函数
[C#] 纯文本查看 复制代码
private void ApplyResearch(TechTree.Branches branch, int level)
{
    switch (branch)
    {
        /*废话*/
        case TechTree.Branches.RECON://大大的RECON
            if (this.alliance.IsHuman)
            {
                switch (level)
                {
                    case 1:
                        if (this.TechTreeUpdateEvent != null)
                        {
                            TechTreeUpdateArgs techTreeUpdateArgs5 = new TechTreeUpdateArgs();
                            techTreeUpdateArgs5.Type = TechTreeUpdateArgs.UpdateTypes.FogOfWarEnd;
                            this.TechTreeUpdateEvent(this, techTreeUpdateArgs5);
                        }
                        break;
                    case 2:
                        if (this.TechTreeUpdateEvent != null)
                        {
                            TechTreeUpdateArgs techTreeUpdateArgs6 = new TechTreeUpdateArgs();
                            techTreeUpdateArgs6.Type = TechTreeUpdateArgs.UpdateTypes.HUDHighlightAvailable;//这是要找的
                            this.TechTreeUpdateEvent(this, techTreeUpdateArgs6);
                        }
                        break;
                        /*废话*/
                }
            }
            break;
            /*废话*/
    }
    /*废话*/
}

一下子就找到了关键字HUDHighlightAvailable

搜索HUD!

这么大的HUDButton,肯定是了
找到OnClick,感觉很不对劲
[C#] 纯文本查看 复制代码
protected virtual void OnClick()
{
    if (this.selected && !this.buttonEnabled)
    {
        this.AbortAction();
        return;
    }
}

打开AbortAction函数
[C#] 纯文本查看 复制代码
public virtual void AbortAction()
{
    this.selected = false;
    this.Player.AbortCommand();
    this.Player.selectedTargetCount = 0;
    this.EnableButton();
}

果然是个接盘侠(从代码可知这是增加健壮性的函数)

右键分析
一下子就找到正主了

(嘿嘿嘿,你叫破喉咙也没有用)

打开后发现高亮控制的OnClick调用了HUDButton的OnClick和DoHighlighting
毫无疑问
看DoHighlighting的代码
[C#] 纯文本查看 复制代码
protected void DoHighlighting(float startWith = 0f)
{
    this.cooldownProgress = startWith;
    if (HighlightController.HighlightEvent != null)
    {
        HighlightController.HighlightEvent(this, new EventArgs());
    }
    this.statusText.text = LocalizationManager.getLocalizedString("14_cooldown", "---");
    this.statusText.CheckOverset();
    this.statusText.Commit();
    base.ShowProgressBar(60f, startWith);
}

14_cooldown的文本是“冷却”,8用说了

立刻看ShowProgressBar
[C#] 纯文本查看 复制代码
public void ShowProgressBar(float time, float startWith = 0f)
{
    this.inProgress = true;
    this.DisableButton();
    this.progressBar.DoCountown(time, startWith);
}


很明显,就是冷却控制函数
因为要改这个就可能会留下许多问题
(例如其他地方DisableButton,却少了这玩意恢复)
秉承能少做事绝不多做的原则
改ShowProgressBar(60f, startWith) (笑
改60f成0.01f(理由同上)

最后,大功告成!

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

Hmily 发表于 2019-7-15 13:46
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

21号自己来注册吧。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-15 09:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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