문제를 보면 음악 플레이어를 주는데 1분 이상은 못듣게 되있다. 1분이상을 듣도록 하면 플래그가 나온다고 한다.



일단 메시지 박스를 띄우길래 메시지 박스를 띄우는 곳으로 가보니 윗부분에 0xea60과 비교를 하는 부분이 보인다.


0xea60은 10진수로 60000이기 때문에 이부분이 1분을 limit 걸어놓는 부분이라는 것을 알 수 있다.


그러므로 cmp eax,0ea60h를 cmp eax,2ea60h로 패치했다.



실행 시켜보니 에러가난다.



이유가 뭘까하고 디버깅 하면서 삽질 하다가 밑줄친 함수에서 프로그램이 비정상종료된다.


test eax,eax 부분에서 eax가 0이면 함수를 실행시키지 않고 다른부분으로 점프되니까 eax를 0으로 맞춰주도록 프로그램을 패치했다.



최종적으로 총 2부분, 60000을 충분히 키워주고 sub eax,eax로 eax를 0으로 맞춰주도록 패치했다.



실행해보니 1분이상 음악듣기가 가능해졌고 프로그램 타이틀에 플래그가 뜬다.


1분이상 못듣는 음악 플레이어를 크랙한것이다.


확실히 비쥬얼 베이직으로 만들어져서 한번도 코딩해보지 않은 언어라 분석하기도 좀더 껄끄럽고 짜증났다.



'문제 > Reversing.kr' 카테고리의 다른 글

Reversing.kr Ransomware  (0) 2017.01.21
Reversing.kr x64 Lotto  (0) 2016.10.06
Reversing.kr HateIntel  (0) 2016.10.05
Reversing.kr Position  (0) 2016.09.30
Reversing.kr Direct3D FPS  (0) 2016.09.01

+ Recent posts