[Reversing.kr] Music Player

semon·2022년 11월 3일
0

Reversing

목록 보기
4/10

문제

Reversing.kr의 Music Player 문제입니다.

ReadMe.txt를 보면 1분 듣기 제한이 걸려있고 1분 이상 재생을 시키면 flag를 얻을 수 있다고 합니다.

분석

peid로 보면 visual Basic을 사용한 걸 확인할 수 있습니다.

그래서 VB Decompiler를 이용하여 디컴파일을 해봤습니다. 그중에서 Timer와 관련이 있어 보여 Timer 함수에 들어갔습니다.

다음과 같이 깨져 보이긴 하지만 1로 시작하는 것을 보니 이 부분이 1분 이상 재생하면 messagebox를 실행하는 부분인 것 같습니다. 이를 우회하면 될 것 같습니다.

위의 코드를 살펴보니 이처럼 이 해당 부분을 우회할 수 있는 부분이 있습니다.

ollydbg로 해당하는 부분으로 이동했습니다.

비교하는 부분을 찾고

해당 부분의 코드를 패치하여 실행을 시켜 봤습니다.

실행을 하다 오류가 발생했지만 계속 실행을 시켜 봤습니다.

그러자 1분을 넘길 수는 있었지만 다음과 같은 오류 메시지를 출력하며 flag는 나오지 않았습니다.

exception이 발생한 부분을 Call stack으로 확인을 해보니 004046BF에서 호출을 한 것을 확인할 수 있습니다.

exception을 호출한 주소를 가보니 다음과 같이 이 부분으로 jmp를 하는 부분이 있습니다. 스택에는 호출 주소 +4가 저장되므로 __vbaHresultCheckObj에서 exception이 발생한 것이고

이 부분을 패치를 통해 뛰어넘으면 될 것 같습니다.

다음과 같이 Password가 나오게 됩니다.

profile
보안을 공부합니다

0개의 댓글