해킹 공부/리버싱

CodeEngn_Basic RCE L13 (C# 디컴파일)

O'bin 2022. 11. 10. 19:17

 

 1.  문제 파일 실행

 

문제 파일 실행 시 password 입력하는 프로그램 실행됨

아무 문자열이나 입력하면 계속해서 다시 시도할 수 있음

문제 풀이를 위해서는 비밀번호를 찾아야 할 것이다.

 

 

 

 2.  문제 파일 패킹 여부 확인

 

PEiD로 확인 결과 EP Section이 .text로 나오는 것으로 보아 패킹되지 않은 실행파일이다.

또 하나 살펴봐야 하는 부분은 아래 초록색 박스 안 내용인데, 이 실행프로그램은 C#으로 쓰였다.

C#으로 쓰인 프로그램은 olly debugger 나 immunity debugger로 열리지 않는다.

이것은 아래에 나오는 dotPeek으로 분석할 수 있다.

 

 

 

 3.  비밀번호 찾기

dotPeek은 jetbrains에서 제공하는 .NET Decompiler 이자 Assembly Browser이다.

아래 링크에서 다운받을 수 있다.

https://www.jetbrains.com/decompiler/download/download-thanks.html?platform=windowsWeb 

 

Thank you for downloading dotPeek!

Free .NET decompiler and assembly browser

www.jetbrains.com

다운로드 후 dotPeek을 실행하고 

 

 

문제 파일을 Assembly Explorer로 드래그 앤 드롭 하면 파일이 열린다.

만약 파일이 자동으로 열리지 않으면 사진 왼쪽과 같이 Main 함수를 찾아 열면 decompile 된 코드를 볼 수 있다.

비밀번호가 나와있지 않고 str에 암호화되어 들어있으므로, str을 출력하는 코드를 추가하면 비밀번호를 알 수 있을 것이다.

 

 

 

코드 수정을 위해 프로젝트에서 우클릭 해 Visual Studio에서 열어보았다.

 

 

 

 

비밀번호 확인을 위해 str값을 출력하는 코드를 한 줄 추가하고 프로그램을 실행한다.

 

 

프로그램을 실행하면 콘솔 창에 비밀번호가 출력된다.

확인을 위해 나온 비밀번호를 똑같이 입력하니 성공 메시지가 출력된다.

 

 

 

FLAG : Leteminman

 

 


기존 사용하던 디버거로 열리지 않는

C#으로 프로그래밍 된 파일을 dotPeek으로 디컴파일해 풀 수 있는 문제였다.