바로 실행을 시켜본다.
이러한 메세지 박스가 출력되는데...
GetDriveTypeA 함수에 브레이크 포인트를 걸고 다음 줄을 실행 시키면 eax에 함수의 리턴값 3이라고 나온다.
그렇지만 우리는 리턴값으로 cd-rom으로 바꿔야하기 때문에 문제만 보고 그 값을 유추 할 수 있지만
GetDriveTypeA 함수의 레퍼런스를 참고하면 리턴값을 알 수 있다.
위의 계산 과정을 보면 esi는 3번 증가하고 eax는 2번 증가한다. 마지막에 compare 되어서 같으면 jump하고 아니면 다음줄로 내려간다.
cmp 명령 줄에 왔을때 레지스터의 값들 인데 eax가 2만큼 모자라다. 그리고 기존 리턴값인 3에서 +2를 해준다면
위와 같이 cd-rom이라는 문구가 나온다.
oep와 eax, esi의 관계는 무엇?
'Reversing > CodeEngn RCE Basic' 카테고리의 다른 글
06.코드엔진 Basic06 (0) | 2018.01.17 |
---|---|
05.코드엔진 Basic05 (0) | 2018.01.17 |
04.코드엔진 Basic04 (0) | 2018.01.17 |
03.코드엔진 Basic03 (0) | 2018.01.17 |
02.코드엔진 Basic02 (0) | 2018.01.17 |