[+] WriteUp for 超迷你的挖矿模拟器

This commit is contained in:
Hykilpikonna
2020-11-07 21:05:25 -05:00
parent 5d0f087fe5
commit 28df4a61f5
+40
View File
@@ -136,3 +136,43 @@ Sage 看了下但是不知道怎样在程序里面控制w
果然不应该想太多吧w ;-;
但是至少从 0 到 114514 没有一个数字解不出来啦w
<br>
## 31. 超迷你的挖矿模拟器 ⛏️
1. 挖掉 Flag 位置(1,1)的方块w5s
2. 开始挖 Flag 位置的空气,
这个时候服务器检测到空气所以就执行可以掉落物品的代码w
3. 重置地图, 这个时候 Flag 的位置会还原成 Flag 方块w
4. 服务器返回掉落的时候重新获取 Flag 位置的材质就拿到啦w
其实很想用之前写 Minecraft [破解种子反假矿的 Baritone Fork](https://github.com/hykilpikonna/baritone)
的经验试试破解种子啦w
然后一看代码发现居然是线程安全题 (╯‵□′)╯︵┻━┻
(之前还好不理解为什么 Minecraft 服务器到现在都没有多线程优化哇w
(大概这就是原因吧w
这是这次比赛最简单的一道题啦w
(简单到还是写了 133 行 😭
不过主要代码就只有 12 行啦, 剩下的都是封装嗯w
论为什么别人写 CTF 都不遵守代码和命名规范 🌚
```kotlin
// Destroy block, wait for it to complete (long = 5s)
damage(flagX, flagY)
Thread.sleep(5500)
// Destroy air, have roughly 3s until it checks the flag again
Thread {
val result = damage(flagX, flagY)
println(result)
}.start()
Thread.sleep(500)
reset() // Reset the flag block
```