ksnctf – Rights out

実行するとゲームが始まるがゲームは関係ない。

この exe の種類は?TrID のオンライン版。

https://mark0.net/onlinetrid.html

ファイルタイプは Generic CIL Executable (.NET, Mono, etc.)

.NET のデコンパイラのオンライン版。

https://kluzo.net

Decompile して Donwload して中身を見てみると Form1.cs の check() 関数がなんとも怪しい。

C# 実行のオンライン版。

https://ideone.com

check 関数を動かすためのコードを作る。

using System;
 
public class Test
{
	private static int[] hist = new int[8];
	public static void Main()
	{
		check();
	}
 
	private static void check()
	{
		Console.WriteLine("Congratulations!");

以下の 4 か所変更。

  1. if (Array.IndexOf(state, value: true) >= 0) { return; } を削除
  2. check 関数に static を追加
  3. MessageBox.Show が 2 か所あるがこれを Console.WriteLine に変更
  4. if (flag) を if (true) に変更

実行すると flag が表示される。