일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BoB 12기 최종합격 후기
- Active Directory
- 필기
- cve-2024-6387
- 뮤텍스
- dll side-loading
- malware
- 논문리뷰
- 디포전
- BoB 12기
- CodeEngn
- 정보기
- 디포전 2급
- race condition
- 정보보안기사
- 디지털 포렌식 전문가 2급
- h4ckinggame
- 코드엔진
- cve-2022-26923
- 프로그래머스
- 디지털 포렌식 트랙
- DLL 사이드로딩
- Best of the Best
- 세마포어
- 리버싱
- bob
- Today
- Total
SEO
[CodeEngn Advance] RCE L04 문제 풀이 및 분석_nabi 본문
RCE L04 문제
RCE L04 문제풀이
Entry point 관련 정보를 찾을 수 없다. 패킹 된 것으로 추측된다.
push 0으로 스택을 초기화하는 것으로 보아 해당 주소가 Original Entry point 이다.
패킹이 되어있어 어딘가에 BP를 걸어도 초기화되고 프로그램이 끝까지 실행된다.
API를 찾는 방식으로 문제풀이를 진행하겠다.
Ollydbg 시작 지점에서 한줄씩 실행시키면 해당 프로그램에서 사용하는 API가 담긴 주소 목록을 확인할 수 있다.
lstrcmp 함수는 두개의 문자열을 비교할 때 사용하는 함수로 사용자가 입력한 serial과 하드코딩된 serial 값을 비교할 때 자주 사용되는 API이다. GetModuleHandleA API로 사용자가 입력한 Serial을 받아와서 lstrcmp로 문자열을 비교하는 것으로 추측할 수 있다. 이제 lstrcmp에 BP를 걸고 실행시켜보겠다.
프로그램에서 Test 버튼을 누르자 lstrcmp 함수 이전 주소까지 실행된 후 멈춘다. 스택부분을 확인하면 String1과 String2를 비교하는 것을 볼 수 있다. String1에 적인 LOD-59919-A0024900 이 Serial 값이라고 추측할 수 있다.
정답 : LOD-59919-A0024900
'Wargame > codeengn' 카테고리의 다른 글
[CodeEngn Advance] RCE L03 문제 풀이 및 분석_nabi (0) | 2022.11.16 |
---|---|
[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 |