풀이
Simple Reverse Engineering Challenge.
Find the Password!! xD
패스워드를 찾아보세요!! xD
CrackMe2st.exe (compiled on Windows7 Visual studio 2008)
DIE로 파일을 스윽 살펴봤다.
MFC를 이용하여 만든 프로그램이다.
프로그램을 실행해봤더니, 키패드가 나타났다.
맞는 키 값을 입력하고 AUTH 버튼을 누르면 flag를 출력하는 듯하다.
먼저 resource hacker를 이용해 AUTH 버튼의 ID 값을 알아내자.
1이라는 ID 값을 갖고 있다.
이제 IDA를 이용해 AUTH 버튼을 작동시키는 함수의 위치를 알아내자.
IDA -> View -> Open subviews -> Segments로 이동하면 PE 파일 섹션의 위치를 보여준다.
MFC의 함수는 .rdata 섹션에 위치해있다.
해당 섹션에서 AUTH의 ID값인 01 00 00 00 01 00 00 00 Offset을 찾아주자.
위에 빨간 박스로 표시된 부분이, 함수의 주소이고 밑에 박스에는 프로그램을 실행하면 볼 수 있는 text가 존재해있다.
이제 해당 0x401740 주소로 이동해보자.
if문에 주목하자. v5, v6 값에 따라 해당 수식을 만족하면 flag를 출력한다.
보아하니, v5 값은 키패드에 입력된 문자열을 _wtoi 함수를 통해 정수로 바꿔준다.
v6은 time 구조체를 이용해, 현재 월(Month) +1 한 값을 v6에 넣는데.. 여기서 오해하면 안되는 점이 있다.
time 구조체의 Tm.tm_mon은 시작 월이 1월이 아니라 0월이기 때문에, +1을 해준 것이니, 헷갈리지 말자.
결론적으로, -201527 * 현재 월 + 입력 값 = 195934910을 만족시키면 된다!
'Wargame > wargame.kr' 카테고리의 다른 글
[Wargame.kr] Crypto Crackme Basic 풀이 (398p) (0) | 2020.07.30 |
---|---|
[Wargame.kr] EASY_CrackMe 풀이 (315p) (0) | 2020.07.30 |
[Wargame.kr] ip log table 풀이 (374p) (0) | 2020.07.30 |
[Wargame.kr] SimpleBoard 풀이 (360p) (0) | 2020.07.29 |
[Wargame.kr] pyc decompile 풀이 (354p) (0) | 2020.07.29 |