ollydbg 이용해서 대사 헥스값으로 찾으면

004A2050 에서 브레이크 걸리는데

agth 로 /x 옵션 걸고 해보면 0053CF61, 0053CFAF 에서

둘다 GetGryphOutlineA 함수에서 대사가 튀어나오네요


아무튼 대사가 완벽하게 나오길래 0053CF61 로 찾아 들어가서

함수 시작 주소가 0053CE20 라는 것은 알아냈는데요

1.png

쭉 내려보니 GetGlyphOutlineA 함수 콜 부분을 찾을 수 있었습니다

GetGlyphOutline 함수는 보통

DWORD GetGlyphOutline(
  __in   HDC hdc,
  __in   UINT uChar,
  __in   UINT uFormat,
  __out  LPGLYPHMETRICS lpgm,
  __in   DWORD cbBuffer,
  __out  LPVOID lpvBuffer,
  __in   const MAT2 *lpmat2
);

이렇게 생겨먹었으니 텍스트가 들어갈 uChar 는 EBP 에서 가져온다는 것을 알아냈습니다

그리고 함수 시작부분부터 다시 시작해서 Step Over 로 차근차근 EBP 변화값을 봤습니다

그런데 EBP 값이 변하질 않더군요

그래서 상위 함수를 찾기로 했습니다

2.png  

콜스택 창을 보니 0053D650 함수에서 콜한 것을 찾았습니다

그래서 0053D650 에 브레이크 걸고 EBP 값을 추적해보니

3.png

MOV EBP, DWORD PTR SS:[ESP+B4] 에서 EBP 값을 바꿔주는 것을 확인했습니다

그 이후로 0053CE20 함수까지 찾아 가는 동안에 EBP 값의 변화는 없었구요

EBP 에는 4자리 헥스값이 들어가있더군요

아무튼  저건가보다 해서 0053D650 함수 시작부터 ESP 를 계산해봤습니다

4.png

우선 시작하자마자

SUB  ESP, 9C

니까 -9C 해줘야겠구요

그 이후로

PUSH EBX -4
PUSH EBP -4
PUSH ESI -4
PUSH EDI -4
PUSH EAX -4
CALL EBX +4
PUSH EDI -4
CALL EBX  +4
PUSH ECX -4 
PUSH EDX -4
CALL 0052E6B0 +8

해주면 -10이고

MOV EBP, DWORD PTR SS:[ESP+B4]

에서 ESP+B4 이니

최종적으로 ESP -9C -10 +B4 하면 +8이네요

그래서 아랄 후킹주소에 0053D650 걸고

[ESP+0x8] 해봤는데


안돼요!!! 도와주세요!!!

클립보드에 복사되는 것 조차 없어요

뭐가 잘못됐죠? ㅠㅠ