CodeEngn Challenges : Basic 13 문제 풀이

안녕하세요~

테라트입니다

 

전공 글로 오랜만에 찾아뵙습니다~

 

URL : https://codeengn.com/challenges/

 

파일을 다운로드합니다

패스워드는 적혀있는 대로 "codeengn"입니다

 

문제가 정답은 무엇인가가 끝입니다

 

일단 다운로드하여서 실행시켜보았습니다

 

패스워드를 입력하라고 하네요

 

아무거나 입력해보았습니다

 

그랬더니

"Bad Luck! Try again!"이라고 하네요

틀렸다고 다시 시도하라고 해서 아무거나 다시 입력해보았을 때도 똑같이 뜹니다,,

 

Exeinfo를 통해 패킹 여부를 확인해보았습니다

 

패킹되어 있지 않고 C#으로 작성된 것을 볼 수 있었습니다

 

C#을 분석하는 툴로 'dnspy'를 이용하였습니다

 

dnspy에 올려서 함수 부분을 살펴보았습니다

 

다음 함수의 부분에서 아까 보았던 문구를 확인할 수 있습니다

 

C#의 소스를 보면

 

RijindaelSimple 함수의 Decrypt 메서드를 이용하여 정답 값을 text 변수에 넣고 있음을 확인할 수 있었습니다!

 

dnspy에서 코드 패치가 가능했습니다 text 값을 찍어보면 정답을 확인할 수 있겠죠

 

RijindaelSimpleTest 함수에서 오른쪽 클릭 후 Edit Class를 눌러줍니다

 

그럼 다음과 같이 코딩이 가능해집니다

 

해당 소스의 다른 부분을 참고하여 보았을 때 Console.WriteLine이

CMD창에 문자열을 출력해주는 함수임을 추측할 수 있습니다

 

if문 들어가기 전에 Console.WriteLine(text);라고 추가해줬습니다

 

WriteLine을 찍는 위치는 여러분 마음대로 줄 수 있습니다

단, RijindaelSimple.Decrypt가 수행된 후여야 하겠죠?

 

다음과 같이 입력해 준 뒤 Compile을 수행해줍니다

 

다음 다시 실행해보면 입력한 값 밑에 정답 값이 출력됨을 볼 수 있습니다

 

얻은 값으로 다시 값을 입력해보았습니다

 

성공적으로 크랙 하였다는 메시지가 출력됨을 확인할 수 있습니다

 

댓글, 2

테라트

Since 2018.07.03 / IT 관련 정보, 일상의 공유를 위한 블로그