프로그램을 실행시켜보면 노래 듣기 기능을 제공하는데 이 때 1분까지만 듣기가 가능하다.

 

 

보아하니 일단 1분 넘게 노래를 듣도록 해봐야겠다는 생각이 들었다.

 

일단 rtcMsgBox에다 죄다 BP걸고 돌려보니 해당 메시지박스가 뜨는 위치를 찾았고 위쪽을 좀 보다보면 다음과 같이 0EA60과 어떤값을 비교하는 부분이 존재했다.

 

 

비교하는 값을 0EA60보다 크게 만든 후 프로그램을 실행해보면 1분이상 듣기가 가능해지는걸 알 수 있었다.

여기서 끝났구나 했는데 문제가 하나 더 남아있었다. 노래는 1분이상 듣는게 가능한데 다음과 같이 예외가 발생하면서 플래그가 아닌 에러메시지가 나타났다.

 

 

해당 에러메시지가 뜨는 곳을 찾기 위해 rtcMsgBox에 다시 BP를 걸어봤지만 BP가 걸리지가 않았다. 아무래도 해당 에러메시지가 dll쪽에서 발생하는 것 같았다. 그래서 다른 방법이 뭐가 있을까 생각하다가 예외가 발생한 시점의 Call Stack을 확인해봤다.

 

 

예외가 발생하기 전에 4046BF가 리턴주소로 스택에 들어와있는걸 볼 수 있었고 예외가 발생하면서 해당 지점으로 리턴하지 못했을거라고 생각했다. 그래서 일단 4046BF지점을 확인해봤다.

 

 

해당 지점을 확인해보니 바로위의 4046B9 주소에 vbaHresultCheckObj 함수 내에서 예외가 발생하고 있는걸 알 수 있었다. 해당 함수내부로 들어가서 더 분석을 해도 되겠지만 위의 JGE를 패치해서 아예 해당 함수가 호출안되도록 해도 상관없을것 같았다.

 

 

위의 사진처럼 해당 함수를 호출안하고 넘어가도록 코드패치한뒤 진행해보니 요렇게 프로그램 제목에 패스워드 값이 떴다.

 

 

 

 

'Wargame > reversing.kr' 카테고리의 다른 글

Reversing.kr Position  (0) 2018.02.16
Reversing.kr ransomware  (0) 2018.02.16
Reversing.kr Direct3D FPS  (0) 2018.01.21
Reversing.kr ImagePrc  (0) 2018.01.21
Revering.kr Replace  (0) 2018.01.21
블로그 이미지

JeonYoungSin

메모 기록용 공간

,