[二改]某(核弹)破解教程(分析)
本帖最后由 云在天 于 2019-6-7 13:01 编辑# 二改说明
作者在此给坛友道个歉,当时撰写时确实时间没多少,赶着上课,所以质量不高,所以来一次二次更改!希望这一次的可以让更多人理解.也希望大家有建议也可以提出,看到后会回复.
20190426 25:35:18 下暴雨了,明天继续
20190427 08:50:29 继续更新!
## 问&答
因为有很多坛友都在问一些问题,就在这里回答了吧.
Q1: 请问破解的软件是什么,可以发一下吗
A1: Dnspy 建议到爱盘上下载!
直链 (https://down.52pojie.cn/Tools/NET/dnSpy.zip)
Q2:破解的是电脑版还是手机版
A2:电脑版,手机版的话安卓可以解包后编辑Assembly-CSharp.dll 应该是差不多的方法吧
安卓的这个文件可能在assets/bin/Data/Managed/Assembly-CSharp.dll
思路差不多,毕竟一个人写出来的
## 修改内容
这个星期和aaaaaaccd交流了一下,发现了一些新的破解方法,也在他的说下发现了一些没有破解到的地方
- 超级武器研究&建造时间√
- 成就全解锁√
- 攻击&防御的冷却√
- 有一个国家没有解锁(哈萨克斯坦)√
- 其他国家的速度也很快!
- ~~自动防御有时会有问题(自动防御其实可以不需要,研究就行了)~~
二改之后会 修改一下之前的思路,然后修改
# 前言
第一次在52破解发帖,也不知道发到哪个区,干脆发到脱壳破解区吧.
核弹先发制人这款游戏还是aaaaaaccd推荐的,他说想找一个破解教程,52上逛了一圈,好像还没有,就自己发个坑吧......
# 简介游戏
这款游戏是一个即时性战略游戏,你有几个操作:
1. 攻击
2. 防御
3. 拓宽领土
4. 研究新武器/新技能
每一个都需要时间,时间就是这个游戏中的金钱......
emm,怎么说呢......下载游戏了就知道了!!
# 确定方向
首先我们要破解的话,要确定好破解的方向.目前我们就讲讲一下几个吧
1. 国家全解锁
2. 自动防御默认开启
3. 无建造时间(这个稍稍有点困难)
4. (未完待续)
# 开场分析,寻找破解软件
这个是用的Unity写的,而且还是用的Mono打包(嘿嘿),找到 .\FirstStikeFinalHour_Data\Managed\Assembly-CSharp.dll抱着试一试的态度打开Dnspy,一拖......
!(https://s2.ax1x.com/2019/04/21/EiIv1H.png)
这下就用这Dnspy搞事情吧 /坏笑
# 国家全解锁
## 普通国家
首先,我们看得到,开始是只有美国是解锁的,中国是没有解锁的.我们就来解锁吧.
这个比较简单,字符搜索一下就ok了.
!(https://s2.ax1x.com/2019/04/21/EioCHP.png)
可以看到,这边有一个 **UnlockManager** 这个类,肯定就是他了!双击点进去.在这个UnlockManager里面乱翻,得到一个方法 **IsAllianceUnlocked** 嗯,我们来看一看这个的代码
[!(https://s2.ax1x.com/2019/04/21/Eiok4S.png)](https://imgchr.com/i/Eiok4S)
他switch国家名称(姑且叫名称吧,其实是另一种数据类型),然后返回那个国家解锁否.emm,我们看看,这个方法的返回值是一个布尔值,而Default是false,那么我们就让他返回True吧! 点击右键->编辑方法
方法内全部内容删掉,只留下return true; 然后再编译
成果图:
[!(https://s2.ax1x.com/2019/04/21/EioQEV.png)](https://imgchr.com/i/EioQEV)
## 哈萨克斯坦
谷歌翻译 哈萨克斯坦=>Kazakhstan
Dnspy寻找一下呗,还是在UnlockMananger里面
有一个**GrantAccessToKazahstan**
也不知道是干什么的,好像是解锁哈萨克斯坦的,这个怎么改呢,我们分析一下代码
```c#
public void GrantAccessToKazahstan()
{
if (!this.unlockedKazakhstan)
{
this.unlockedKazakhstan = true;
this.SaveState();
}
}
```
似乎是说假如说没有解锁就解锁,emm,那我们就把它放到**LoadState**语句吧
```c#
public void LoadState()
{
this.GrantAccessToKazahstan();
.......
.......
}
```
嘿嘿,既然到这里找到了UnlockManager,下面一个方法不就是**IsSuperWeaponUnlocked**
# 解锁成就
还是在这个UnlockManager里面
**CheckGoalFinish**函数全部返回Ture ,像国家一样
## 解锁超级武器
仍然这样吧,全部返回True,运行一下看看
!(https://s2.ax1x.com/2019/04/21/EioRbt.gif)
嗯,已经全部弄好了呢!,解锁的话就在**UnlockManager**还有什么别的解锁需求可以自己改哦!
# 无等待时间
## 防御&攻击无冷却
还在研究,下个星期和aaaaaaccd一起研究一下!
可能是这样
在**NationModel**里面的**RequestRocketLaunch**函数
```c#
if (flag)
{
this._numAttacksOverall++;
this.CurrentState = NationState.States.cooldown;
this.view.WaitAfterLaunch(agent, 30f);
}
```
把他注释后成为
```c#
if (flag)
{
this._numAttacksOverall++;
//this.CurrentState = NationState.States.cooldown;
//this.view.WaitAfterLaunch(agent, 30f);
}
```
**RequestInterceptorLaunch**也是注释掉这样的语句
但是这样的话,他的武器显示不会更新,所以我们就加一个
```c#
this.UpdateWeaponBar();
```
emm,就加载之前注释的地方吧
## 建造无时间
~~我们就着简单的来,搜寻build,结果搜索结果一堆,那干脆搜索ICBM吧.~~
~~忽然发现了onBuildICBM,点进去一路追查,走到了**BuildRocket**~~
~~里面就是了!~~
~~我们把this.CurrentState = NationState.States.building;可以注释掉,让他认为这个还没有正在建造~~
~~然后发现一个更神奇的 this.arsenal.TotalRocketCapacity~~
~~嗯,追踪过去,让他返回10(最多建造10个)合理更改,免得游戏炸掉哦!~~
↑↑↑↑这个可能导致游戏崩溃,不建议修改!
其实在另一个**BuildRocketSub**里面还有东西!追踪到 GetTimeToBuildRocket 嗯,这个就是建造时间
我们直接让他返回0(似乎返回的试float,dnspy会自动加上f)
嘿嘿,这里好像都是和时间有关,看见GetTimeToXX全部返回0吧!
就这样吧!
## 超级武器研究&建造无冷却
搜索一下*Super time* ,一路跟踪到**SuperWeaponManagerModel**下面的**GetProgressTime** 这个应该就是返回的吧,我们直接让他返回0f
不过这样就有问题了,试试0.1f
0.1f可以通过,总之这个地方不能是0,似乎要执行一个时间减然后才可以解锁Button
## 扫描无冷却
还在寻找突破口!
# 自动防御
emm,直接说吧
寻找auto,看到个autoDefendeEnabled,我们往上翻,看到AutoDefenseEnabled函数里面设置了他的值,改成返回true
isfull也顺便改了,false
# 成就全解锁
UnlockManager改CheckGoalFinish改成
```c#
public bool CheckGoalFinish(int mission)
{
return true;
}
```
# 变态版改变
这些建议不改,影响游戏体验,而且其他国家也会一样的执行修改后的操作
## 地区不被毁灭
NationModel里面的**ReceiveDamage**函数
```c#
if(this._health.Health <= 0){
...
}
```
改为
```c#
if(false){
...
}
```
**LooseNation**函数里面全部注释掉,**OnBurn**函数也全部注释掉
# 小结
这次可能有点乱,有问题,或者很多方面做得不好,这只是提供了一个思路,也希望52的坛友们能补充和尝试!
©Kengwang
假如说aaaaaaccd看到了的话:)
当前破解版版本链接(第二版): 链接: https://pan.baidu.com/s/1CQ4bhfFkAOI-ClJYGiL0Og 提取码: wc5j 本帖最后由 kengwang 于 2019-4-27 10:33 编辑
修改了一下,现在可以很爽了,我干脆把改好的DLL给大家
解压后放到 .\FirstStikeFinalHour_Data\Managed wear90 发表于 2019-4-21 12:27
希望楼主把破解使用的软件发一发
爱盘上面有,Dnspy,直接搜索哦! 等下,好像开始不了游戏了......
重新完整再破一下 希望楼主把破解使用的软件发一发 感谢分享教程 感谢分享教程 学习了~~谢谢~~很好很强大~! 支持一下
页:
[1]
2