知名网站建设代理,企业宣传片制作多少钱,网站空间 价格,wordpress popup题目连接#xff1a;
https://play.picoctf.org/practice/challenge/361?originalEvent72page3我们是windows系统#xff0c;所以点击windows game下载游戏 双击运行pico.exe 屏幕上方的一串英文是叫我们找flag#xff0c;我在这个小地图里走来走去也没flag#xff…
题目连接
https://play.picoctf.org/practice/challenge/361?originalEvent72page3我们是windows系统所以点击windows game下载游戏 双击运行pico.exe 屏幕上方的一串英文是叫我们找flag我在这个小地图里走来走去也没flag我上梯子后才发现突破点 墙外有一个旗帜但是我们无法出去有空气墙我们碰到旗帜就应该能拿到flag了
目前能拿到flag的思路
使用Cheat Engine控制人物的坐标直接修改坐标值强制出去
使用DnSpy修改程序代码使一开始运行游戏的时候就显示flag这两个方式我都会演示
Cheat Engine
Cheat Engine是一款用于修改计算机游戏运行时内存中数值的开源工具。它可以搜索和修改游戏中的各种数值如生命值、金钱、经验值等等 下载地址
https://www.cheatengine.org/使用ctrlalttab使游戏在后台运行安装好Cheat Engine后双击运行 点击左上角的图标导入我们的游戏进程 导入之后就要搜索我们要修改的值了在unity中玩家的坐标是浮点数我们可以一直移动来找到坐标值 由于我们不知道坐标scantype选择未知的值valuetype选择浮点数然后点击firstscan 可以看到他扫描到了215168000个值太多了现在来慢慢筛选点击scantype选择增加值 然后回到游戏我们向前走几步 然后回到Cheat Engine点击nextscan 可以看到值减少了很多现在我们回到游戏后退几步回到Cheat Engine选择减少值 点击扫描后又少了一些值一直重复这几个动作 现在值减少到了6千多个然后选择不变的值点击repeat 点击nestscan 现在有400多个值取消repeat回到游戏继续重复上面的动作 现在只剩下60多个值了我们点击address然后右下角的图标 在最下面我们随便勾选几个值代表着冻结然后回到游戏看能不能移动如果不能就慢慢筛选直到找到坐标的值
经过一段时间的筛选后发现这个值就是坐标值一旦我冻结了他回到游戏就无法移动 首先我们冻结这个值然后双击随便改一个值 注意别改太大了大概这个值就能出去 现在解禁函数我们走到旗帜前 出现了falg
picoCTF{WELCOME_TO_UNITY!!}DnSpy
DnSpy是一款开源的.NET程序集反编译工具它可以将.NET程序集反编译成可读性较高的C#代码或者IL代码。DnSpy不仅可以查看反编译后的代码还可以编辑和调试.NET程序集包括修改程序集中的变量值、方法等等
下载地址
https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8Assembly-CSharp.dll是unity的程序集所以我们反汇编这个文件就好了 双击打开DnSpy将Assembly-CSharp.dll拖入 在APTX里找到了一些有趣的函数 private void OnTriggerEnter(Collider collision)
{if (collision.gameObject this.player){this.Mysterious.SetActive(true);}
}如果玩家碰撞了这个对象就会输出一些东西这应该就是flag的触发方式了 在下面可以看到游戏启动的函数名次Start
首先我们复制this.Mysterious.SetActive(true);这一行代码然后右击APTX 然后右击我们创建的Start选择编辑方法 然后进行修改使一进入游戏就输出flag ctrlshifts保存所有双击打开游戏 一进去就能看见flag了