그림을 어디선가 불러올텐데, 정직하게 처음부터 찾아나서려고 하니 도저히 찾아지지가 않는 상황이었습니다. 과연 어떤식으로 이 난관을 헤쳐나갈 수 있을까요? 답은 바로 Intermodular call에 있었습니다. 그림을 불러오려면 어찌됐든 리소스상에 있는 그림을 call하는 Windows API가 쓰일 것이기 때문에 Intermodular call로 어떤 함수들을 부르는지 확인하면 도움이 될 것이라고 판단했습니다.
Windows API를 하나도 모르지만 LoadResource, SelectObject라니, 뭔가 확인해보고싶게 생겼습니다. 모조리 breakpoint를 걸고 진행해봅니다. 그러다보면 운 좋게도 0x408D24에서 StrecthBit이라는 함수를 실행한 후 화면의 그림이 바뀌는 것을 확인할 수 있습니다. 감동입니다. 그런데 함수 이름좀 잘 지어주지.. StretchBit이 뭐야..ㅠㅠ 정확한 원리는 http://donghwada.tistory.com/entry/WINAPI-%EB%B9%84%ED%8A%B8%EB%A7%B5-%EC%B6%9C%EB%A0%A5-%EB%A9%94%EB%AA%A8%EB%A6%AC-DC 에서 확인할 수 있습니다.
이렇게 티모를 만날 수 있습니다만 살짝 기괴하네요. 그러면 우리는 0x401471번지를 건들여 이미지 로딩 속도를 바꿀 수도 있고, 직접적으로 이미지를 변경할 수도 있습니다. 이 난잡한 창을 볼 수 있고, 마찬가지로 이미지파일 수정을 통해 변경할 수 있긴한데 로딩 이미지를 바꾸는 것과 완전히 동일한 내용으로 보여 넘어가겠습니다. 다음 게시글에서는 메뉴의 설정값들을 변경하면 어떤 식으로 동작하는지를 알아보겠습니다. |
'컴퓨터과학 > 리버싱' 카테고리의 다른 글
[피카츄배구 리버싱] 7 (0) | 2018.03.11 |
---|---|
[피카츄배구 리버싱] 6 (0) | 2018.03.11 |
[피카츄배구 리버싱] 5 (0) | 2018.03.11 |
[피카츄배구 리버싱] 3 (0) | 2018.03.10 |
[피카츄배구 리버싱] 2 (0) | 2018.03.10 |
[피카츄배구 리버싱] 1 (3) | 2018.03.10 |