워게임/CodeEngn

[CodeEngn] Basic RCE L13

name2965 2022. 7. 6. 17:18
728x90

 

 

 

이번 문제는 다음과 같습니다.

 

주어진 프로그램을 exeinfope로 열어보면

 

 

 

 

32비트 실행파일이고 C#으로 만들어졌다는것을 알수 있습니다.

 

우선 프로그램을 실행시켜봐야합니다.

 

 

프로그램을 실행시켜보면 다음과 같이 비밀번호를 입력하라는 문자열이 나온뒤

임의의 값을 입력하면 다시 입력하라는 메세지가 나오는 구조이고 이것이 반복됩니다.

 

 

저는 분석을 위해서 dnSpy라는 C# 디컴파일 프로그램을 사용하겠습니다.

 

먼저 이 프로그램의 메인 함수를 찾아볼것입니다.

 

 

 

 

그러면 다음과 같이 메인함수가 하나 보입니다.

 

간단하게 분석해보면

암호화텍스트와 여러가지 기본값들을 설정한뒤 encrypt함수를 호출한뒤

text값을 decrypt함수를 통해서 설정한뒤

비밀번호를 입력받는 로직을 무한루프로 만들었고

만약 입력값이 text와 같다면 무한루프에서 벋어난뒤 크랙에 성공했다는 문자열이 나온뒤 종료됩니다.

 

저는 이 프로그램에서 생성하는 text값이 뭔지 알아내기 위해서 dnSpy 의 기능을 사용해서

이 프로그램을 비주얼 스튜디오의 프로젝트로 export할것입니다.

 

 

프로젝트를 export할 폴더를 설정한뒤 export하면 됩니다.

 

이제 프로젝트를 빌드해보면

 

 

 

 

다음과 같이 잘 export 된것을 확인할수있고

 

 

 

실행도 잘됩니다.

 

그럼 이제 이 프로그램에서 text값을 출력하도록 코드를 살짝 수정해주면 됩니다.

 

 

 

이렇게 값을 입력하기전에 text를 출력하도록 코드 한줄을 추가해주면

 

 

 

다음과 같이 text가 출력되는것을 확인할수 있습니다.

 

이 값을 그대로 입력해보면

 

 

 

 

성공 메세지가 출력되므로 이 값이 올바른 정답이 맞습니다.

 

 

728x90

'워게임 > CodeEngn' 카테고리의 다른 글

[CodeEngn] Basic RCE L15  (0) 2022.07.06
[CodeEngn] Basic RCE L14  (0) 2022.07.06
[CodeEngn] Pro RCE L01  (0) 2022.07.04
[CodeEngn] Crypto Analysis L02  (0) 2022.07.04
[CodeEngn] Crypto Analysis L01  (0) 2022.07.03