EASY7

[CodeEngn] Basic RCE L07 본문

Project/CodeEngn

[CodeEngn] Basic RCE L07

E.asiest 2019. 12. 26. 22:23

실습환경

VMware Workstation

OS : Window XP

OllyDbg(shadow)

IDA 32

 

 

문제

컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 

 

파일에 대한 이해

알맞는 시리얼 넘버를 넣으면 성공

 

문제 풀이

1. GetDlgItemTextA 함수에 break point 걸고 실행

2. 뭔지 모르겠으니 dialog box 에 '1111' 넣어보자..ㅎㅎ

3. F8로 계속 내려오다 보면 lstrcmpiA 함수가 있다.

그리고 내가 넣었던 '1111'도 있다.

입력값과 L2C-57816784-ABEX와 같으면 성공일 거라고 유추한다.

4. 역시나 성공.!

 

함수 공부

GetDlgItemTextA : 대화상자에 텍스트를 가져온다.

ExitProcess : calling process를 끝낸다.

GetVolumeInformationA : 특정 root 디렉터리에 관련된 볼륨과 파일시스템을 검색한다.
lstrcatA : 문자열 append

lstrcmpiA : 두 문자를 비교한다 (대소문자 구분하지 않는다)

 

lstrcmpiA자세히 알아보자!

lstrcmpiA String1 String2

반환값

String1<String2 : 음수

String1=String2 : 0

String1>String2 : 양수

 

 

하지만... 문제를 더 자세히 읽어보면

C드라이브의 이름을 "CodeEngn"으로 변경했을 때, CodeEngn이 어떻게 변화되는지를 알아야한다.

GetDlgItemTextA할 때, C드라이브 이름을 참조하는 것으로 보인다.

 

그 후 위와 같은 방식으로 시리얼 넘버를 찾으니

L2C-5781EqfgEngn4562-ABEX였다.!

CodeEngn이 EqfgEngn로 변화되었으므로 이것이 답이였다...

 

 

 

 

'Project > CodeEngn' 카테고리의 다른 글

[CodeEngn] Basic RCE L09  (0) 2019.12.26
[CodeEngn] Basic RCE L08  (0) 2019.12.26
[CodeEngn] Basic RCE L06  (0) 2019.11.15
[CodeEngn] Basic RCE L05  (0) 2019.11.10
[CodeEngn] Basic RCE L04  (0) 2019.11.10
Comments