[CodeEngn] Basic RCE L15
L15
문제
Name이 CodeEngn 일때 Serial을 구하시오
파일 실행
올리디버거
All referenced text string
분기점
F9
- EAX에 User 입력 값 16진수
- 분기 위 CMP를 통해 DWORD PTR DS : [45B844]에 Serial 값 들어있을거라 판단
- DWORD PTR로 받아오니 45B844 덤프의 4Byte만 측정
Follow in dump - Memory address
Dump Window
- Intel은 리틀엔디안으로 00006160
- 00006160 10진수로 변환 : 24928
결과
- NAME = CodeEngn ;
- Serial = 24928
분석
- 분기 함수가 있는 군집 코드
- 함수 호출하는 CALL 분석
CALL 15.00458760
- CALL 15.004255C0 : strlen으로 입력한 NAME 길이 값 EAX에 받아옴
- CALL 15.0040383C : NAME 주소(0045B840)를 EAX에 저장
- XOR로 EAX 값 비워줌
- EAX 값 다시 반환
- ESI에 1넣고 EAX값을 감소시키며 반복문 통해 NAME의 문자열 하나하나 연산
- 반복문 끝나고 나서의 EBX값 00001818
- EAX 초기화 전까지 연산
- EBX : 00006061
- EAX : 00006061
- 즉 Serial 값 도출