본문 바로가기

쓰기

< 실행파일 외 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
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일sort
공지 아랄트랜스로 게임하기 앞서 기본 셋팅 확인하기! [4] file TwoComet 40477   2012-08-30 2014-02-26 20:12
공지 아랄트랜스 - 초보자 가이드 [94] file Hide_D 319301   2008-07-16 2015-02-27 18:02
공지 모든 플러그인, 필터 안내 ('09.03.13) [20] Hide_D 191352   2008-10-31 2009-03-13 23:48
공지 아랄트랜스 0.2 - 초보자 가이드 [109] file 아랄 505813   2008-07-16 2013-12-31 09:32
16 조금이라도 아랄트랜스를 빨리 쓰고 싶은 사람들을 위한 팁! [2] Hide_D 13120   2009-12-06 2015-04-12 15:59
AGTH와는 달리 아랄트랜스 속도가 느려지면 게임 속도 자체가 느려지기 때문에, 이래저래 골치가 아프기 마련이죠. 아랄트랜스에서 속도를 느리게 만드는건 다른게 아니라 '번역 속도'입니다. 딴 필터 100개 끼워봐야 번역속도로 느린 걸 당할 게 없으니까요....  
15 오토보쿠2 아랄을 후커처럼 사용해보자. [3] file Ria- 6903   2010-07-03 2015-04-23 01:06
 
14 [번역률향상]Ehnd+꿀도르 설치, 허니엔드 [2] 미래도 35300   2015-04-28 2015-05-08 18:11
eztrans의 번역률을 향상하기위한 Ehnd라는 도구와, 꿀도르 사전이라는 사전이 있습니다. http://sokcuri.neko.kr/220301117949 http://blog.naver.com/waltherp38/220267098421 다만, 이렇게 설치방법이 나와있어도.. http://blog.naver.com/waltherp38/22028...  
13 ATCode 플러그인 - 설명서 [2] file 아랄 65450   2008-04-25 2015-07-25 00:21
 
12 SiglusEngine 복불복 막장드립 [5] file 두병더더 7885   2012-08-12 2015-08-11 16:01
 
11 PhantOm:디버깅이 제한된 프로세스 디버깅하기 [1] 미래도 1435   2015-08-23 2015-08-25 19:46
사실 VNR 스크립트 주석에서 퍼옴 椎名里緒, 시나리오 엔진의 경우 Themida로 디버깅을 막았습니다.(다른 디버깅방지 엔진도 비슷할꺼라 생각함) - OllyDbg로 열 때, 게임이 실행되지 않는다. - 게임 모듈 메모리 공간이 수정하는 것을 막는다. 대체로 이런 특...  
10 나도 준한글화를 만들어보쟈 ' -' [15] 미히 35801   2009-03-07 2015-08-30 11:00
晝下がり 제목이 준한글화 만들어보자인데 헛소리구요 사실은 Custom Script (사용자 대본) 사용설명서 입니다. 그런데 완전히 헛소리가 아닌게 또 [Custom Script(사용자 대본) 이하 사용자 대본]으로 만드는것이기 때문에 헛소리가 아니란 말 입니다. 그러...  
9 게임 업데이트후 코드먹통될때(예제. FATAL ZERO ACTION) [2] file 두병더더 3141   2012-08-27 2015-09-13 02:52
 
8 사진이 깨진 글에서 사진순서 맞추기 file 미래도 429   2015-09-13 2015-09-13 03:08
 
7 [VNR홈페이지]게임이름으로 게임정보 찾기 미래도 3682   2015-09-13 2015-09-13 03:43
게임 정보를 빠르게 찾는 법에 대해 소개합니다. 개인적으로 엔진정리와 작업을 하고 있으나.. 금칙어 크리때문에.. VNR 홈페이지에서 일종의 데이터베이스를 제공합니다. 물론 정보를 수집해서 올려놓은 것이기에 플레이하지 않은 것은 지원하지 않습니다. 주...  
6 게시물 분류작업 미래도 492   2015-09-14 2015-09-14 05:09
게시물 분류작업입니다. 주석달기전에 일단 분류부터.. http://lab.aralgood.com/index.php?mid=board_lecture&document_srl=게시물번호 게시물번호에 해당 번호 복붙해서 들어가면됩니다. 찾아보니, 똑같은 게시물이 두개있는경우가 있더군요. 과거 폴라...  
5 Sho&#6489lԀ &#1... AngeliaTolmer6414 363   2015-11-08 2015-11-08 01:28
ShoᥙlԀ уоu lоvᥱⅾ thiѕ ρоѕt and үоս ѡɑnt tο гесеіνe tоɗⲟ mоrе infօ гᥱǥагding Ореracjɑ Ⲣlаstуczna Nοѕa Ꮯᥱnnіκ (Http://Www.Dbamy.Pl/) aѕsᥙrе ѵiѕіt ⲟսг οᴡn աeb-ѕitᥱ.  
4 [강좌] 올리디버거로 ATCode 코드를 찾아보자 (1) [16] file 아랄 98698   2008-05-18 2015-12-02 16:11
 
3 cs2엔진 게임에서 대사창이 안나올경우 file 별초군 680   2015-12-03 2015-12-03 18:52
 
2 기리기리엔진에 대해 여러가지 [3] 고토회복 8351   2012-06-25 2015-12-06 04:09
1. 무료엔진이라는 겁니다 이걸 왜 이야기 하냐 하면 그러므로 버전별로 안전판 원본이 있어요 도대체 무슨 이야기야? 하는 분들 많을듯... 어느 회사가 기리기리로 게임을 제작합니다.. 버전별로 전부 툴이 있지요 ^^ 그개 다 공개고 자 여기에서 어느 회사가...  
1 AT 코드 찾는 방법 [46] file 아랄 269444   2008-04-21 2021-01-03 13:14