[CodeEngn] Basic RCE L01
L01
문제
HDD를 CD-Rom으로 인식시키는 GetDriveTypeA의 리턴값을 구하는 문제
GetDriveTypeA Function

- disk drive의 Type을 결정하는 함수
 
파일 실행

확인 - Click

올리디버거로 파일 실행

- 메시지 박스 확인 시 파일 실행 시 나왔던 문자열 확인
 - 실패와 성공 문자열 동시에 확인
 
리턴값 알아보기 위해 0040101D에 Break

- 
    
레지스터 상태 영역에서 리턴값 확인
 - 
    
레지스터 용도

 - 
    
EAX 값 3으로 HDD Return 값 3 도출
 
00401026까지 차례대로 실행(Step over - F8)

- 
    
EAX 두번 내리고 ESI 세번 올린 후 JMP 조건 명령어 실행
 - 
    
JMP 조건 명령어

 - 
    
조건 플래그 값이 1(값이 같음)이면 성공 메시지 0(값이 다름)이면 오류 메시지 확인
 
첫 번째 방법

- 00401026 줄의 어셈블리어 명령 코드에서 JE를 JMP로 수정
 
두 번째 방법

- 00401024 00401026 줄의 어셈블리어 명령 코드에서 비교값 통일
 
결과
