코드엔진 Basic RCE L

코드엔진 Basic RCE L01 번외풀이

Lamed_Dhhd 2023. 1. 26. 23:52
반응형

2023-01-27에 쓸 예정

https://www.youtube.com/watch?v=H_ZPHg5SjDU 

상세설명

https://dhhd-goldmilk777.tistory.com/232

 

코드엔진 RCE BASIC 01 풀이

2023-01-27에 쓸 예정 CodeEngn Challenge 링크 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을

dhhd-goldmilk777.tistory.com

위에 게시글을 읽고 오는걸 무조건 추천합니다(꼭 보고오세요.)

어셈을 해석하니 esi의 초깃값은 401000이고 GetDriveTypeA 이후 eax는 3이다.

esi = 401000, eax = 3일때 inc는 값을 1 증가시키고, dec는 값을 1 감소시킬때 cmp eax,esi에 도달했을때 두 레지스터의 값은 어떻게 변했을까?

 

정답 esi = 401003, eax = 1

풀이

inc esi 곱하기 3은 401000+3 = 401003

dec eax 곱하기 2는 3-2 = 1

두값이 같게 될려면 리턴값은 5(드라이버가 CD-ROM일 경우 리턴값)가 되어야한다.

그러면 왜 그래야하는 파일 속성을 보면

1999년에 제작된걸 확인할 수 있다.

그래서 vmware로 win xp sp 3로 실행해보았다.

그 결과 디버깅에서는 정상적으로 안되지만

attach기능으로 실행후 부착하여 보면

놀라게도 esi의 값이 0이다.

그러므로 윈도우 xp3에서는 잘된다.

추가로 윈도우 xp 영문버전에서는 디버깅에서도 esi의 초깃값이 0이되므로 잘된다.

관련 동영상

https://www.youtube.com/watch?v=CJnS88FWfRo 

 

반응형