상세 컨텐츠

본문 제목

[CodeEngn] Basic RCE L13

REVERSING/Reversing Study

by koharin 2021. 6. 1. 13:52

본문

728x90
반응형

정답은 무엇인가


.NET 프로그램임을 알 수 있다.

 

.NET(닷넷) 프로그램

  • MS사의 윈도우 프로그램 개발 및 실행 환경
  • CLS(.NET Framework 언어가 지켜야 하는 언어 스펙)을 따르는 언어는 .NET Framework에서 실행 가능하다.
  • 가상머신인 CLR 위에서 작동하여 플랫폼에 독립적이다.
  • 기계어로 컴파일 전 intermediate 언어가 존재한다.
  • 디컴파일이 쉽다.

 

.NET decompiler를 검색해서 나온 dotPeek를 사용해봤다.

 

Open으로 13.exe 파일을 열고, ConsoleApplication3 > Root Namespace > RijndaelSimpleTest 파일을 열어보니, 패스워드를 입력받고 str과 입력값이 같을 경우 Well Done을 출력해주는 코드를 볼 수 있었다.

ConsoleApplication3 > Root Namespace 하위에 RijndaelSimpleTest 파일을 열어보니 IDA나 BInary Ninja로 열어봤을 때 본 encrypt, decrypt 코드 부분이 있었다.

코드를 보면 str과 입력값이 동일해야 하므로, 정답은 str에 저장되어 있다.

따라서 str를 Console.WriteLine으로 출력해보면 정답을 알 수 있다.

ConsoleApplication3에서 우클릭하면 Export to Project로 Visual Studio로 프로젝트를 추출해서 수정할 수 있다.

 

// Decompiled with JetBrains decompiler
// Type: RijndaelSimpleTest
// Assembly: ConsoleApplication3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 2ABE29DC-14E6-4F4B-97CF-81A2ED74FE79
// Assembly location: C:\Users\johan\Downloads\13.exe

using System;

public class RijndaelSimpleTest
{
  [STAThread]
  private static void Main(string[] args)
  {
    string plainText = "";
    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(plainText, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize);
    string str = RijndaelSimple.Decrypt(cipherText, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize);
    Console.WriteLine(str);
    
    
    while (true)
    {
      Console.WriteLine("Please enter the password: ");
      if (!(Console.ReadLine() == str))
        Console.WriteLine("Bad Luck! Try again!");
      else
        break;
    }
    Console.WriteLine("Well Done! You cracked it!");
    Console.ReadLine();
    
  }
}

입력받기 전 str를 출력하도록 수정 후, 빌드 후 실행해보았다.

 

str이 출력된 것을 확인할 수 있다.

728x90
반응형

'REVERSING > Reversing Study' 카테고리의 다른 글

[Reversing.kr] Easy Keygen  (0) 2021.06.01
[CodeEngn] Basic RCE L14  (0) 2021.06.01
[Reversing.kr] Easy Crack  (0) 2021.05.25
CodeEngn Basic RCE L12  (0) 2021.05.23
CodeEngn Basic RCE L11  (0) 2021.05.23

관련글 더보기