반응형

실행하면 메시지 박스가 나오고, 확인을 누르면 CD-ROM드라이브가 아니라고 거부 당하는 메시지가 뜨네요

 

x64dbg로 열어서 저 메시지들이 있는 구문을 살펴보겠습니다.

eax와 ecx를 비교하여 같다면 무조건 통과되는 것이니 cmp eax, esi 부분을 cmp eax, esi 로 바꿔주어 통과로 점프

 

그럼 통과 메시지가 출력된다.

그렇다면 정작 이 문제의 플래그인 CD-ROM으로 인식되게 하려면 eax가 얼마가 되어야 할까.

inc esi가 총 3 번있고  dec eax가 총 2번 있으니 esi의 값은 +3이 되어있고 eax의 값은 처음이었던 3에서 -2가 되어있다

 

eax값과 esi의 값이 연산 후 같게 되려면 GetDriveTypeA함수를 실행한 후 eax의 값이 5이어야 한다.

 

 

 

맞나 확인해보려 마이크로소프트 공식 문서를 뒤져봅니다.

 

 

 

 

정답이네요. 플래그는 {5}

 

 

 

반응형