CodeEngn Basic13 풀이
Wargame | CTF/Reversing

CodeEngn Basic13 풀이

코드엔진 Basic 13번 문제입니다. 정답을 찾으라네요. 그냥 제작자의 의도대로 문제를 풀라는것같아요.

일단 PEiD로 패킹이 혹시 되어있는가 확인해보겠습니다.

C#으로 작성된 프로그램이라는데요 패킹은 없는것같습니다. 혹시 콘솔응용프로그램 일까요..? 실행시켜보겠습니다.

예 콘솔응용프로그램이 맞습니다.  사용자로부터 문자열을 입력받고, 저장된 패스워드와 비교를 해서 성공메세지를 띄우는거 같네요. 

올리디버거로 가보겠습니다.

음.. 올리디버거로 열리긴하는데 그냥 공백화면만 뜨네요.. 왜그럴까요 좀더 고민해보곘습니다. PEView로 파일을 한번살펴보겠습니다.

한참헤메다가 인터넷검색찬스... C# 디컴파일러를 이용하라네요 .......... 한시간동안 삽질했네요



디컴파일러를 이용하니 쉽게 디컴파일되어서 세세한 메소드 내용까지 나옵니다. 올리디버거로는 왜 안되나 찾아보니 C#으로 작성된 코드는 올리디버거로 분석이 어렵다고합니다. 그대신 C#으로 작성된 코드는 Reflector 를 통해 쉽게 디컴파일 가능하다고 합니다. (다른 보안적인 기법이 없을시)


Decrypt 메소드에  프로그래머가 미리 지정해둔 파라메터를 전달받고, 메소드리턴값을 plainText 에 저장하네요. 그리고 그값이랑 콘솔에 입력된 값을 비교하여 일치여부를 판단합니다.

단순히 plainText 값만 알면 Well Done 문자를 띄울수 있겠군요. 

Export해서 소스값을 따준뒤에 비쥬얼 스튜디오에서 임포트 해줍니다.

plainText를 출력하는 코드 한줄을 추가해줍니다. Well Done 문자가 뜨네요. 풀이완료!

'Wargame | CTF > Reversing' 카테고리의 다른 글

CodeEngn Basic15 풀이  (0) 2018.03.19
CodeEngn Basic14 풀이  (0) 2017.11.20
CodeEngn Basic12 풀이  (0) 2017.09.11
CodeEngn Basic11 풀이  (0) 2017.09.11
CodeEngn Basic10 풀이  (0) 2017.09.03