일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 에밀 뒤르켐
- 철학
- 논문리뷰
- CodeEngn Basic 01
- 코드엔진 basic 5
- 사회적 사실
- codeengn basic rce 01
- BoB 12기 최종합격 후기
- 자살론
- 디지털 포렌식 트랙
- 리버싱
- Best of the Best
- BoB 12기
- CodeEngn
- 코드엔진 베이직
- h4ckinggame
- malware
- CodeEngn Basic 5
- 코드엔진
- bob
- 사회분업론
- Today
- Total
woonadz :)
[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
'IT > 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 |