카테고리 없음

[Code Engn Challenge] Basic 13

미숫가루빙수 2024. 4. 7. 22:13

 

 

문제 자체에서 주는 힌트는 없다.

우선 압축을 풀어봐야겠다.

 

 

 

7zip으로 압축을 풀어주었다.

 

 

 

압축을 푼 문제를 실행시켜 아무 숫자나 넣어보았다.

여기서도 cmp로 비교하는 것이 있을 거라 예상.

 

 

DIE로 확인해본 결과 라이브러리가 .NET으로 되어있다.

.NET을 풀기위해 dnspy로 풀어주어야한다.

 

 

using System;

// Token: 0x02000003 RID: 3
public class RijndaelSimpleTest
{
   // Token: 0x06000004 RID: 4 RVA: 0x000021B4 File Offset: 0x000003B4
   [STAThread]
   private static void Main(string[] args)
   {
      string text = "";
      string cipherText = "BnCxGiN4aJDE+qUe2yIm8Q==";
      string passPhrase = "^F79ejk56$£";
      string saltValue = "DHj47&*)$h";
      string hashAlgorithm = "MD5";
      int passwordIterations = 1024;
      string initVector = "&!£$%^&*()CvHgE!";
      int keySize = 256;
      RijndaelSimple.Encrypt(text, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize);
      text = RijndaelSimple.Decrypt(cipherText, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize);
      for (;;)
      {
         Console.WriteLine("Please enter the password: ");
         string a = Console.ReadLine();
         if (a == text)
         {
            break;
         }
         Console.WriteLine("Bad Luck! Try again!");
      }
      Console.WriteLine("Well Done! You cracked it!");
      Console.ReadLine();
   }
}

 

다음은 dnspy로 열었을 때 찾은 메인 부분이다.

여기서 Console.WriteLine("Please enter the password: ");에 브레이크를 걸어보겠다.

 

 

 

브레이크를 걸고 실행시켜보겠다.

 

 

실행시켰을 때 출력되는 것들이다.

여기서 text인 Leteminman으로 정답이 비교될 것이라 예상.

 

 

 

입력을 해보면 정답이라는 걸 알 수 있다.