Unregister라는 폴더에는 Project1.exe 파일이 있다.
Register 버튼을 누르면 아무 창도 안뜬다. 일치하는 키를 입력하지 않으면 아무런 동작도 안한다.
PEiD로 먼저 패킹 여부를 보자..!
Delphi는 처음 들어봤는데 이렇다고 한다..
그럼 일단 가볍게 문자열을 추출해보자
지금까지 다뤘던 것보다 추출된 문자열이 매우 많은데 의미있는건 가장 마지막 부분인 것 같아서 떠왔다.
"2V", "XS", "B6", "H1", "0F", "Authkey : ", "Congratulation!"이 보인다.
그 밑에는 영소문자와 숫자로 이루어진 문자열도 보인다.
일단 가장 첫 "2V", 004502C6으로 가보자.
이 부분인데 EBX+310부터 318, 31C, 314, 320 순으로, 즉 "2VB6H1XS0F"라는 문자열이 무슨 의미가 있는 것 같다.
그리고 그 사이사이 00404260 함수를 호출한다
일단 이 정도로 파악을 하고 이번엔 성공 문자열을 출력하는 코드로 가보자.
그 위에 분기문이 있어 브레이크 포인트를 걸고 그 직전에 함수를 실행하는 코드와 "Congratulation!" 문자열이 있는 부분도 bp를 걸어 일단 실행해봤다.
"mango"라고 입력해보고...
0019F068에 저장된 것도 확인했다.
레지스터 값을 보니 EAX에 "mango"가, EDX에는 먼저 언급한 "2VB6H1XS0F"가 들어있었다.
이제 실행되는 함수, 00404608에 어떤 코드가 들어있는지 확인할 차례다
EAX값을 ESI에, EDX값은 EDI에 넣고 EAX, EDX를 비교하고 있었다.
역시 입력한 값과 "2VB6H1XS0F"을 비교하는 것이 맞았다.
그럼, 저 문자열을 넣어보자.
분기문을 보니, 함수 00404608의 가장 마지막 결과값을 반환하는 부분에서
ESI와 EDI가 모두 "0F"의 값을 가지고 "Congratulations!"로 리턴되었다.
암호문인 줄 알고 이것저것 디코딩 시도해보다가 포기하고 혹시나..?
이제보니 문자열 추출 중 가장 마지막에 있던 영소문자+숫자 조합이 플래그였다..ㅎㅎ
flag: 2abbe4b681aae92244536ca0e32fa0de
'Wargame > SuNiNaTaS' 카테고리의 다른 글
SuNiNaTaS 19 (FORENSICS 154pt) (0) | 2020.07.26 |
---|---|
SuNiNaTaS 15 (FORENSICS 255pt) (0) | 2020.07.26 |
SuNiNaTaS 28 (FORENSICS 200pt) (0) | 2020.04.05 |
SuNiNaTaS 16 (SYSTEM 155pt) (0) | 2020.03.29 |
SuNiNaTaS 9 (REVERSING 144pt) (0) | 2020.03.29 |