본문 바로가기

쓰기

< 실행파일 외 DLL 코드 후킹 >

 

안녕하세요.

 

아랄 쿠소 연구실장입니다.

 

5 4일자 업데이트 후부터 EXE 부분이 아닌 DLL 영역의 코드도 후킹이 가능하게 되었습니다.

 

 


위에 보시는 것 처럼
모듈 선택 콤보 박스가 있습니다.

 

여기엔 현재 게임에 로드 된 DLL들을 보여줍니다.

 

[Absolute]를 선택하시면 코드 주소는 절대주소를 의미합니다.

 

우리가 지금 껏 써왔던 일반적인 후킹 주소지요.

 

, 0x00400000 부터 시작하는 실행모듈의 주소입니다.

 

만일, [Absolute]가 아닌 어떤 특정 모듈을 선택했다면, 코드 주소는 모듈 시작 주소로부터의 상대 주소를 의미합니다.

 

아래는 코나카나 라는 게임의 대사 출력 함수 입니다.

(자체디버거로 안잡히더군요 ㅜㅜ)
 

 


0x031C3590
번지 함수는 EBX 레지스터로 텍스트를 전달 받네요.

(찾는 과정은 생략하였습니다.)

 

, 그럼 0x031C3590를 후킹 주소로 쓸 수 있을까요?

 

보통 실행파일은 0x00400000번지에 올려지는데, 위의 주소는 뭔가 이상하군요.

 

위의 빨간색 사각형을 보시면 TEXTWORK라는 별도의 DLL이란 것을 확인할 수 있습니다.

 

DLL은 어디에 로드되어 있는지 볼까요?

 

Alt-E를 누르면 현재 로드 된 DLL들을 모두 볼 수 있답니다.

 


 

TEXTWORK 모듈을 찾으셨나요?

 

, 이 모듈은 0x031C0000 번지에 로드되었습니다.

 

모듈의 시작점이 0x031C0000이고, 찾은 함수가 0x031C3590 이므로 우리는 텍스트 후킹 지점을 이렇게 표현할 수 있겠죠.

 

TEXTWORK가 로드 된 시작주소로부터 3590번지

 

, 그럼 이제 아랄트랜스 주소 입력 창에 어떤 값을 넣는지 대충 눈치 채셨나요.

 

 


이렇게 하면 앞으로 TEXTWORK.FIL이 어느 주소에 로드 되든지 간에 항상 시작주소로부터 + 0x3590번지를 후킹합니다.

 

참고로 아랄트랜스 내부적으로는 TEXTWORK.FIL!0x3590 이런 식으로 표시를 합니다.

 

궁금한 점 있으면 언제든 질문 해 주세요.

 

감사합니다.

 

앙마vv

2008.05.05
15:28:23
멍.~~  뭔소린지 ㅎㅎ;;

직접 해봐야지 뭔지 알겠네요 .. at코드 찾는것도 글읽으면 뭔소리 몰랐지만 직접 해보니 쉽더군요 ㅎㅎ

dll 로 하는 것은 디버그로 at코드가 안찾아 질때 하는건가요 ?

관리자

2008.05.05
18:33:09
at코드를 찾긴 찾았는데 그 주소가 0x00400000부터 시작하는 주소가 아닐때
사용하는 기능입니다.
그러나 대부분 게임들의 텍스트 출력 함수는 exe 파일에 있으니
반드시 알아야 할 내용은 아닌듯...  ^-------^

우루룽

2008.05.07
19:20:53
질문!
테레비가 사라진날이라는 게임 코드입니다만 이럴경우는 어떻게 입력해야 합니까?

GDI32.dll! OxBC0C
[ESP+0X10]

라파에

2008.05.07
19:56:11
/우르룽

모듈 : GDI32.dll
주소 : BC0C
인자 : [ESP+0X10]

군요 ^^ 강좌에 나와 있는 게임처럼 자체 디버깅에서 잡히지 않는한 올리디버거류의 디버깅툴을 사용 하실 필요는 없고
보통 아랄코드 찾으실때처럼 후킹주소를 추가 하시되 모듈만 따로 설정 하시면 됩니다!

관리자

2008.05.07
20:27:18

안녕하세요 우루룽님
GDI32.dll은 윈도우에서 그래픽 관련 함수들을 처리하는 모듈로써
게임과는 상관없어 보입니다.
이 외에도 kernel32.dll, ntdll.dll 등 윈도우의 system32폴더에 있는
dll이라면 잘못 짚으신 주소로 보입니다.
게임 폴더에 있는 DLL이라면 가능성이 큽니다.
즉 게임과 관계없는 윈도우 공용 DLL파일들은 그냥 넘기시기 바랍니다. ^^

라파에

2008.05.07
22:04:47
킁.. 그렇군요!

어쩐지 디버깅에서 텍스트가 나와도 많은 주소가 팅겨 버린다고 생각했는데

윈도우파일 이엿군요..  그렇담.. 뻘짓을 좀 많이 했구나.. ㅜㅜ;
 

우루룽

2008.05.08
00:26:31

예 감사합니다!

유피에르

2008.05.08
18:59:25
찾는 과정 설명이 필요합니다 ㅠ_ㅠ
List of Articles
번호 제목 글쓴이 날짜 최근 수정일 조회 수
공지 아랄트랜스로 게임하기 앞서 기본 셋팅 확인하기! [4] file TwoComet 2012-08-30 2014-02-26 20:12 40827
공지 아랄트랜스 - 초보자 가이드 [94] file Hide_D 2008-07-16 2015-02-27 18:02 319563
공지 모든 플러그인, 필터 안내 ('09.03.13) [20] Hide_D 2008-10-31 2009-03-13 23:48 191570
공지 아랄트랜스 0.2 - 초보자 가이드 [109] file 아랄 2008-07-16 2013-12-31 09:32 506064
17 우타와레루모노 보이스패치후 바로가기 하는법 팁입니다. [3] maruichi 2008-10-26 2008-10-26 10:30 25980
16 System35Plugin 대체 코드 [2] my vagina 2008-10-19 2008-10-25 19:21 25707
15 게임이 기리기리 엔진인지 알고 싶다면! [7] file Hide_D 2008-10-18 2008-11-03 21:48 32316
14 비스타에서 아랄트랜스로 후킹시 게임이 사라질때 [8] file my Vagina 2008-10-06 2009-01-06 01:23 27518
13 다국어도구 AppLocale 설치와 사용법 [3] file 야라토 2008-08-16 2008-08-26 23:57 48696
12 [강좌] 사용자 사전 플러그인 0.3 사용법 [11] file Hide_D 2008-08-13 2009-04-02 21:32 106963
11 유니코드 변경법 [4] file MILD 2008-08-01 2009-02-06 14:00 60228
10 [강좌]사용자 사전 플러그인 0.2 사용법 (CustomDic.txt 편집방법 첨부) [5] file Hide_D 2008-07-21 2008-12-29 00:52 82091
9 [강좌] TAT플러그인 사용법 2/2 [2] file my Vagina 2008-07-19 2009-01-06 00:59 40372
8 [강좌] TAT플러그인 사용법 1/2 [2] file my Vagina 2008-07-19 2009-01-06 00:59 53011
7 클립보드로 복사된 내용을 ClipHooker EX! 로 깨짐 없이 보는법 [6] file Hide_D 2008-06-19 2008-12-23 17:32 50466
6 (팁) 기리기리 플러그인의 ATData.ZIP [10] file 아랄 2008-06-01 2008-07-10 20:24 78690
5 [팁] 아랄트랜스 바로가기 파일 - 등록정보 대에서.. [1] file 아랄 2008-05-24 2008-11-11 17:34 40936
4 SHIFT-JIS 코드표 [2] file 아랄 2008-05-12 2009-03-18 19:17 43678
» DLL 코드 후킹 [8] file 아랄 2008-05-05 2008-05-08 18:59 67393
2 [팁] AT코드의 더 많은 것들 [2] 아랄 2008-04-25 2008-04-26 08:22 64850
1 아랄트랜스 0.2 - 실행시 옵션에 대하여 [1] 아랄 2008-04-24 2008-11-11 23:31 63995