프로그램을 실행시켜보면 노래 듣기 기능을 제공하는데 이 때 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 |