문제 파일을 실행시키니 유저가 입력할 수 있게 하는 창이 뜬다.
아무거나 넣고 확인을 눌러보니, "Incorrect Password" 라는 문구가 뜬다.
확인을 누르니 종료가 된다.
""""
따라서 이 Easy Crack 문제는 출제자가 정해둔 패스워드를 리버싱으로 알아내고, 그것을 창에 입력하면 풀리게 되는 문제일 것이다.
""""
ollydbg 로 열었을 때의 모습이다.
문자열을 찾아본다.
incorrect password 가 뭔가 수상하다. 클릭!!
[esp + 5], 61.
아래를 참고하면 61은 a 이다.
따라서, 키값에서 두 번째 문자는 61 = a 가 되어야한다.
"ESP+5" 의 값과 61(a) 비교한 뒤, 다르면 00401135 주소로 이동하게 된다.
두번째는 첫번째 분기 밑에 존재한다. 무슨 함수를 호출하는데 인자 3개를 주는데
ARG1 =유저가 입력한 키값에서 세번째 문자부터 끝까지 해당한다.
ARG2 = 5y
ARG3 = 2
5y와 사용자가 입력한 값을 세번째 위치부터 비교해준다.
함수를 빠져나왔을때, TEST 명령어를 이용해서 EAX 값이 0이 되는지, 아니면 다른 것이 나오는지를 확인해서 00401135 주소로 이동한다. 0이 되어야 실패했다는 부분으로 가지 않기 때문에, 키값의 3번째 4번째 문자는 5와 y가 된다는 것이 자명하다.
세번째 문자 : 5
네번째 문자 : y
위의 두가지를 충족시키면, 마지막 비교부분이 나온다. "R3versing"라는 문자열이 뭔가 수상하다. 순서대로 디버깅을 하다보면, 사용자 입력값 5번째 문자부터 "R3versing"과 같은지 확인을 하고, 다르면 실패 부분으로 이동한다. "R3versing" 문자열과 일치하면, 맨 첫번째 문자가 'E' 인지 확인을 한다.
"R3versing"이라는 문자와 사용자가 입력한 문자열을 5번째 문자부터 비교한다.
첫번째 문자가 'E'인지 확인하는 부분
password 입력 > 2번째가 a인지 검사 진행 > 3,4번째가 5y인지 검사 > 5번째 이후가 R3versing 인지 검사 > 1번째 문자가 E인지 검사 진행
password : Ea5yR3versing
-
'2023 리버싱' 카테고리의 다른 글
notepad.exe pe 헤더 분석 (0) | 2023.04.30 |
---|---|
PE 구조 분석 (0) | 2023.04.30 |
메모리 구조 & 스택 & 스택 프레임 (0) | 2023.04.02 |
[1주차] OllyDbg 다운로드 및 사용법 (1) | 2023.03.26 |
[1주차] 레지스터 & 어셈블리어 (0) | 2023.03.26 |