private static byte[] answer = new byte[]
private static bool checkFlag(string flag)
byte[] array = new byte[flag.Length];
for (int i = 0; i < flag.Length; i++)
array[i] = (byte)((uint)flag[i] ^ num);
num = (num >> 3 | num << 29);
return Program.answer.SequenceEqual(array);
private static string reverseFlag()
for (int i = 0; i < answer.Length; i++)
array[i] = (byte)((uint)answer[i] ^ num);
num = (num << 3 | num >> 29);
string words = System.Text.Encoding.Default.GetString(array);
public static void Main()
checkFlag("asdfasdfasdf");
Console.WriteLine(reverseFlag());