모두의 dream
Music Player 본문
Contents
접기
음악을 실행시켜주는 프로그램이다. 60초가 되면 1분 미리듣기만 가능하다는 문구가 출력된다.
그래서 1분 미리듣기만 가능하다는 문구를 디버거에서 찾아보았다.
위 부분이 1분 미리듣기입니다를 출력해주는 코드이고, break point를 걸고 실행하다 보니 위에서 시간을 비교하는 것 같은 어셈블리어 코드를 발견했다.
cmp eax, EA60
원래는 0xEA60(60,000/컴퓨터 시간처리 단위 ms) 이었으나 확인을 위해 0xFFFF로 변경했다.
노래는 계속 나오지만 Run-time error 가 출력된다.
오류가 뜨면서 exception이 딱 걸리는 지점.
스택을 확인해보면 00402B58 값이 스택에 PUSH 되어있다.
vbaHresultCheckobj 함수에 push 된 값과 위의 값이 동일하므로 아래 코드에서 예외가 발생했음을 알 수 있다.
(사실 이 부분은 정확히 이해를 하지 못했다. 이런식으로 접근이 맞는건지 의문이고, x64dbg 에서 콜스택을 어떻게 해석해야 하는지 잘 모르겠다.)
그래서 jge 값을 jmp 로 바꿔서 우회해주면 아래처럼 패스워드가 나온다.
'CTF·wargame > Reversing.kr' 카테고리의 다른 글
CSHOP (0) | 2022.03.21 |
---|---|
Easy Keygen (0) | 2022.03.20 |
Easy Unpack (0) | 2022.03.20 |
Easy Crack (0) | 2022.03.20 |
Comments