INS'hAck 2019 Writeup - xHell
コンテスト終了間際にチームが追い込みをかけていたので、適当に残ってたREV問にチャレンジしたら解けた。
雑すぎる解き方で作問者に申し訳ない。
Question
This is what happens when you let a manager create challenges for INS'hAck. If you don't have Microsoft Excel, this challenge also works in Google Sheets.
Solution
G2セルのif文の条件に合うようなB1~E1セルの値を求める問題。
B1~E1セルはデフォルトで乱数がセットされる。
B2~E82には計算式が入っている。
G2セルのif文の条件は以下の通り。この条件を満たすB1~E1セルの値がフラグ。
- B1~E1が2~256
- E82=1
- B1-C1=46
- E1-D1=119
まずはB1セルに=C1+46、D1セルに=E1-119をセットする。
あとはE82セルが1になるような、C1セルとE1セルの値を求めればよい。
C1セルとE1セルをbruteforceで回すVBAマクロを作ればよさそうだが、まずは観察してみようと思い、Excelのフォームのスピンボタンを設置してC1セルとE1セルにリンクさせる。スピンボタンを押下し続けて、各セルの値を観察してみる。
すると、E1セルが132
のときに、E列のセルの値の変化が激しいことに気付く。
その状態でC1セルの値を変化させて観察していたところ、C1セルが157
のときにE82セルが1
となりif文の条件に合致した。
Congrats! Here is yout flag: INSA{203-157-13-132}