본문 바로가기

리버스-엔지니어링

[Reversing.kr] Music Player

반응형


음악 파일의 재생시간 제한을 우회하도록 한다.

1분 미리듣기 팝업을 띄워서 콜스택으로 해당 함수의 출처를 확인한다.



사용자 영역에서 실행한 함수는 rtcMsgBox이므로 해당 주소로 이동한다.



분기점을 찾기 위해 해당 함수 윗부분으로 이동한다.



MsgBox 함수 호출 이전에 음악 재생 시간을 비교하고 있다.
0x0EA60은 10진수로 60000, 즉 음악 재생시간이 60000ms이므로 그 이상의 값으로 수정한다.
로직 자체를 우회하려면 40456B의 JL을 JMP로 바꾸면 된다.

그러나 실행하면 음악은 계속 재생되지만 런타임 에러가 발생된다.



오류 메시지를 보니 현재 재생 시간의 값을 확인하는 구문이 있는 것으로 추정된다.
All intermodullar calls를 열어보면 vbaHresultcheckobj 함수가 유일하게 검사와 관계있는 함수인 듯하다.
재생구문 근처에도 저 함수가 많이 존재한다.



해당 CALL에 모두 BP를 한다.



재생시간 1분이 넘자 위 주소에서 BP가 걸리므로 해당 CALL을 NOP로 변경하면
런타임 에러가 발생하지 않는다.









반응형