코드엔진 basic 06번

2021. 9. 25. 21:09Wargame 공부/CodeEngn basic

프로그램을 실행하면 처음에 아래와 같은 창이 나타난다.

아무런 값이나 입력한 뒤 Check Serial 버튼을 클릭하면 위와 같이 실패 메시지 창이 나타난다.

이제 PE View를 이용해서 EP값을 찾아보자. PE View를 사용해 파일을 열어보면 아래와 같이 UPX로 패킹되어 있음을 알 수 있다.

이제 UPX를 사용하여 언패킹 해보자 그러면 아래와 같이 제대로 된 PE구조가 나타나게 되고 OEP값을 찾을 수 있다. (OEP = 401360) (EP = Address of Entry Point + Image Base)

언패킹을 완료했고 OEP값을 찾았으므로 올리 디버거를 이용해 파일을 열어보자

올리 디버거를 이용해 파일을 연 뒤 Search For -> All referenced Strings을 사용해 관련된 문자열이 있는지 찾아보니 아래와 같이 문자열들이 나타났다.

이제 Wrong serial!!! 문자를 클릭하여 004010AC주소로 가서 분석해 보면 주소 00401073 주소에서 시리얼 값을 비교해 같으면 성공 메시지를 띄우고 틀리면 실패 메시지를 띄우는 것으로 확인 됐다. 00401073 주소의 함수의 첫 번째 파라미터를 보면 AD46DFS547이란 문자임을 알 수 있는데 이 값이 시리얼 값임을 알 수 있다.

플래그는 OEP + 패스워드 이므로 00401360AD46DFS547 이다.

'Wargame 공부 > CodeEngn basic' 카테고리의 다른 글

코드엔진 basic 08번  (0) 2021.09.25
코드엔진 basic 07번  (0) 2021.09.25
코드엔진 basic 05번  (0) 2021.09.25
코드엔진 basic 04번  (0) 2021.09.25
코드엔진 basic 02번  (0) 2021.09.25