CreateWindowExA에 어떤 인자가 들어가는지 확인해보면
리소스해커로 열어보면 이렇게 생겨잇는데, 일본어를 잘 몰라서 한글판을 다운받아 참고하면서 수정했습니다.
수정 후에 저장하면 이제 조금 그럴싸해졌습니다.
물론 아직 고칠건 많지만요. 이제 CreateWindowExA 함수를 넘어가보겠습니다.
일단 4개의 함수의 주소를 레지스터에 담네요. PeekMessageA, GetMessageA, TranslateMessage, DispatchMessageA가 뭐하는 함수인지 찾아보면 http://blog.naver.com/lsc173/220520479327 키보드 입력을 처리하는 부분으로 추정됩니다 . 일단 넘어갑시다.
0x406ABD에 breakpoint를 걸어두고 F9를 눌러 진행하다보면 그림이 조금씩 로딩되는 것을 관찰할 수 있는데, 이를 통해 0x401460 함수가 이미지를 로딩하는 것으로 추정할 수 있습니다. 0x401460 안으로 들어가겠습니다.
굉장히 어지럽네요. 일단 (_DWORD *)v1 + 100 = 0x4013A0에서 이미지가 로딩됩니다. timeGetTime()으로 시간을 비교하는데 비교하는 값은 0x28(40ms)입니다. 40ms마다 이미지를 보여준다고 추론할 수 있겠네요.
0x4013A0 부분의 코드는 아래와 같습니다.
우리에게 익숙한 PUSH EBP로 시작하지 않네요. 혼란스럽습니다. 그래도 CALL하는 저 4개의 함수 중에서 어느 하나는 그림을 띄울 것입니다.
두 번째로 sub_404ED0은 sub_408C90을 call합니다.
call하고 또 call하고 이건 뭐 끝도 안보이네요. 일단 제 멘탈의 건강을 위해 다른 방법을 모색해보겠습니다. |
'컴퓨터과학 > 리버싱' 카테고리의 다른 글
[피카츄배구 리버싱] 7 (0) | 2018.03.11 |
---|---|
[피카츄배구 리버싱] 6 (0) | 2018.03.11 |
[피카츄배구 리버싱] 5 (0) | 2018.03.11 |
[피카츄배구 리버싱] 4 (0) | 2018.03.10 |
[피카츄배구 리버싱] 2 (0) | 2018.03.10 |
[피카츄배구 리버싱] 1 (3) | 2018.03.10 |