일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 필기
- Best of the Best
- BoB 12기 최종합격 후기
- 뮤텍스
- DLL 사이드로딩
- bob
- 정보기
- BoB 12기
- 코드엔진
- h4ckinggame
- dll side-loading
- 디포전
- cve-2022-26923
- 세마포어
- 프로그래머스
- cve-2024-6387
- CodeEngn
- 디포전 2급
- 디지털 포렌식 트랙
- Active Directory
- 정보보안기사
- malware
- 리버싱
- race condition
- 논문리뷰
- 디지털 포렌식 전문가 2급
- Today
- Total
SEO
[CodeEngn Advance] RCE L03 문제 풀이 및 분석_nabi 본문
RCE L03 문제
RCE L03 문제 풀이
GetDlgItemTextA 함수
dialog box에서 제어와 관련된 제목이나 텍스트를 검색한다.
UINT GetDlgItemTextA(
[in] HWND hDlg,
[in] int nIDDlgItem,
[out] LPSTR lpString,
[in] int cchMax
);
함수가 성공하면 반환 값은 종료 null 문자를 포함하지 않고 버퍼에 복사된 문자 수를 지정한다.
함수가 실패하면 반환 값은 0이다.
메모리를 확인하면 keygen 에 관한 내용이 나오는 것을 확인할 수 있다. (문자열 검색에서도 확인 가능하다.)
함수의 매개변수에 적혀있는 버퍼의 주소로 들어가면, 필자가 입력한 시리얼 값을 불러온 것을 확인할 수 있었다.
wsprintfA 함수를 실행시키자 매개변수인 CDFCFCF6 값을 형식화한 값을 00403284 주소의 버퍼에 적는다.
wsprintfA 함수를 통해 얻은 메모리 값과 필자가 입력한 비밀번호 123을 비교한다. 따라서 Name...CodeEngn 의 비밀번호가 3455909110 인 것을 알 수 있었다.
하지만 답이 아니라고 한다. (설마 Name... 때문인가 해서 다시 시도해보았다.)
3265754874 라는 값과 필자가 입력한 123 이라는 값을 비교하는 것을 확인할 수 있다.
Serial : 3265754874
'Wargame > codeengn' 카테고리의 다른 글
[CodeEngn Advance] RCE L04 문제 풀이 및 분석_nabi (0) | 2022.12.21 |
---|---|
[CodeEngn Advance] RCE L02 문제 풀이 및 분석_nabi (0) | 2022.11.16 |
[CodeEngn Advance] RCE L01 문제 풀이 및 분석_nabi (0) | 2022.11.02 |
[CodeEngn Basic] RCE L07 문제 풀이_nabi (0) | 2022.03.29 |
[CodeEngn Basic] RCE L09 문제 풀이_nabi (0) | 2021.10.08 |