워게임 풀이
Reversing.Kr
Copyright © 2012-2023 Gogil All Right Reserved.
reversing.kr
1. Easy Crack
문제 파일을 실행시키면 사용자가 입력할 수 있는 창이 출력된다. 아무 값이나 넣어봤더니 틀렸다고 에러창이 뜬다.
한 번 실행 단축키인 F9(실행) 단축키를 활용해서 처음 부분으로 간 후, 우클릭을 해서 Search for>All referenced text strings에 들어간다. 이 작업을 수행하면 원하는 문자열을 빠르게 한 번에 찾을 수 있다!!
Congratulation이 중요해보여 해당 코드로 이동하였다. (클릭 시 해당 코드로 이동)
Congratulation 밑에 Incorrect Password라는 MessageBox를 띄우는 부분(00401135)이 보인다.
00401135 주소를 확인해보면 총 4개의 구간에서 패스워드를 검사하고, 맞지 않다면 이 부분으로 넘어오는 것으로 보인다.
-> 004010B5, 004010CD, 0040110B, 00401112
Incorrect Password로 점프하면 안되기 때문에 00401135로 점프하는 곳에 Break Point(F2)를 건다.
BP 전까지 실행을 한다. (F9) 패스워드를 입력하라는 창이 뜨지만 아직 패스워드를 알지 못하기 때문에 아무 값이나 넣어줬다.
ESP+5에 있는 값 61(hex값 61은 'a')을 비교하고 있다. ESP+5는 입력값 중 두 번째 값을 의미하기 때문에 password의 두 번째 값은 'a' 임을 알 수 있다.
밑으로 더 내리면 ESP+4, 즉 첫 번째 값을 45(hex값 45는 'E')를 비교하고 있으므로 첫 번째 값이 'E'가 된다. (같지 않으면 위의 00401112의 jne 연산에 의해 Incorrect Password로 점프한다.)
따라서 패스워드는 'Ea5yR3versing'
'Reversing' 카테고리의 다른 글
[Reversing] Easy Keygen_WirteUp (0) | 2023.04.29 |
---|---|
PE 구조(2)__notepad.exe(메모장 프로그램) PE 헤더 분석 (0) | 2023.04.28 |
PE 구조 (0) | 2023.04.04 |
0201 메모리 구조, 스택, 스택 프레임 (0) | 2023.03.28 |
0101 레지스터, 어셈블리어, 디버거 설치 (0) | 2023.03.22 |