일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- WTF_CODE
- WarGame
- Couldn't invoke the file
- 워게임풀이
- cheatengine
- Couldn't in
- suninatas
- 3번문제
- 치트엔진
- xcz.kr
- 시스템
- CheatEngine Tutorial
- 8번문제
- Basic RCE
- xcz.kr 문제풀이
- 써니나타스
- 치트엔진 튜토리얼
- BasicRCE
- 1번문제
- xcz.kr prob
- CodeEngn
- Web
- wargame.kr
- 6번문제
- 치트엔진 튜토리얼 게임
- 리버싱
- 오토잇디컴파일
- reversing
- 포렌식
- 워게임
- Today
- Total
HackChang
[CodeEngn] Basic RCE L07 문제 풀이 본문
Basic RCE L07
컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가
실행시키면 위와 같은 화면이 나오고, 체크버튼을 통해 인증을 하는 방식이다.
올리디버거를 통해 열어본다.
스트링 검색(우클릭 - Search for - All referenced strings)을 통해 문자열을 확인할 수 있었고,
위에서 GetDlgItemTextA는 텍스트의 길이를 반환해준다.
해당주소에 BP(F2)를 걸고, F9를 눌러 실행을 한다.
BP에 걸려 해당주소까지만 실행이 되고, 실행창이 뜨면 CodeEngn을 적고 체크를 누른다.
F8을 눌러 올리디버거에서 한 줄씩 실행하다보면
EAX에 8이 담기는 것을 볼 수 있고, 그 다음으로 GetVolumeInformationA함수가 나오는데 이는 지정된 루트 디렉터리의 파일 시스템 및 볼륨에 대한 정보를 검색하는 함수이다.
RootPathName = NULL이므로, C드라이브를 대상으로 검색한다. 검색에 성공하면 1을 반환하고, 실패하면 0을 반환한다.
성공적으로 검색한 것을 볼 수 있다.
하지만, 볼륨명에 아무것도 나오지 않는 문제가 발생했다.
검색을 통해 알아보던 중 로컬 디스크 (C:)는 이름을 지정해주지 않은 상태인 것을 알게되었다.
이름을 변경하고, 다시 실행해보았다.
정상적으로 볼륨명이 나오는 것을 볼 수 있었고,
해당 명령을 통해 문자(loca)를 2씩 더하는 것을 볼 수 있다.
해당 값을 보면 L2C-5781과 4562-ABEX는 고정이고,
nqecl부분이 변경되는 것을 볼 수 있고, 이를 strcmp를 통해 같으면 0을 반환하여 성공하는 메세지를 띄워준다.
따라서 CodeEngn으로 적용을 시켜보면 L2C-5781CodeEngn4562-ABEX인 것을 알 수 있다.
'W4RG4M3 > R3V3RS1NG' 카테고리의 다른 글
[CodeEngn] Basic RCE L09 문제 풀이 (0) | 2019.11.19 |
---|---|
[CodeEngn] Basic RCE L08 문제 풀이 (0) | 2019.11.19 |
[CodeEngn] Basic RCE L06 문제 풀이 (0) | 2019.11.19 |
[CodeEngn] Basic RCE L05 문제 풀이 (0) | 2019.11.19 |
[CodeEngn] Basic RCE L04 문제 풀이 (0) | 2019.11.19 |