본문 바로가기

쓰기

 

안녕하세요
 

이번에 아랄 트랜스 0.2를 사용하시는 유저분들께서 ATCode 란 것에 대해

 

많이들 궁금해 하실 것 같아 간략하게 나마 설명을 드리고자 합니다.

 

우선 ATCode는 아랄트랜스에서 사용하는 후커 코드라고 보시면 됩니다.

 

AGTH 로 다양한 후커 옵션을 사용해 보신 분 이라면 이해가 빨리 가시겠지만,

 

후커코드에 대해 모르셔도 상관없습니다.

 

거두절미하고 테스트 삼아 직접 ATCode를 찾아내 보도록 합시다.

 

오늘 강좌에서 마루타가 될 게임은 조심술2+라는 게임입니다.

 

제작사와 게임의 배경은 저도 잘 모릅니다.;; 아무튼 만만해서 선택했죠.

 

나는 조심술2+가 없단 말이다! 라고 불평하는 분들도 계시겠지만

 

결국 모든 게임의 atcode찾는 방법은 아래와 크게 다르지 않으니, 눈치 빠른 유저분이라면 아래 설명만 보고도 똑같이 적용하실 수 있습니다.

 

, 그럼 설명을 시작하겠습니다.

 

 

 

AT 코드 찾기

 

게임을 실행시키고 아랄 트랜스도 실행시킵시다.

 

조심술2 프로세스를 선택해서 Hook버튼을 누지릅니다.

 


위와 같이 아랄 트랜스 설정 창이 뜨면 제대로 후킹이 된 것입니다.

 

이제 플러그인을 선택합시다.

 

후킹 플러그인은 DebugingATCode , 번역 플러그인은 ezTransXP를 선택합니다.

 

그러면 아래와 같은 허접한 디버깅 창이 하나 뜰겁니다;;;

 

 


썰렁하죠-_-;;

 

! 이제 게임에서 대사를 몇 번 넘겨볼까요.

 

그랬더니.. 우옷~!! 디버깅창이 뭔가 힘겨운 듯 미친 듯이 텍스트를 출력해 댑니다.

 

(안구에 꽤나 유해한 주파수로 새로고침을 해대는군요)

 


여기서 각 항목들에 대해 간단히 설명하자면..

 

Address

함수의 주소입니다.

Score

문자열로 추정되는 인자 위치와, 문자들이 적중된 점수입니다.

Last Text (Japaness)

최근 이 함수로 전달된 일본어 문자열입니다.

Last Text (Korean)

일본어 문자열을 번역한 한국어 문자열입니다.


 

Score의 점수와 Text 내용을 종합적으로 추론하여 우리는 대사 출력 함수를 찾을 수 있죠.

 

, 그럼 찬찬히 살펴봅시다. 문자열 출력과 관련된 함수는 어떤 걸까~~~

 

.. 다행히도 꼬꼬마 친구들조차 요거요라고 찍을 수 있을 만큼 확연히 드러나네요 -_-;;

 

, 410320번지가 문자열을 출력하는 함수 주소 같군요.

 

아니, 그런데 인자가 [ESP+4] 번지와 [ESP+C] 번지가 있군요.

 

 옆에 괄호로 hit라고 된 숫자는 지금까지 GetGlyphOutLine이나 TextOut 같은 문자출력 함수를 거쳐서 나간 횟수 입니다.

 여기서 주의해야 할 점은 hit 수는 절대 410320번지 함수 호출 횟수가 아니라는 것 입니다. 문자가 일치한 수 입니다.

 

우리는 두 개의 유력한 용의자(?)를 찾았습니다.

 

어떤 녀석이 문자열 인자인지 알아보기 위해 브레이크 포인트를 걸어봅시다.

 

우리말로는 중단점이라고 하죠. 그게 그거 -_-

 

중단점을 지정하는 단축키는 F2, 중단점에 걸렸을 때 다시 진행시키는 키는 F9입니다.

 

자 그럼 마우스로 410320번지를 선택해서 F2를 눌러봅시다.

 



우옷!! 왼쪽 구석탱이에 삼각형의 브레이크 포인트 마크가 생겼네요!!

 

아아.. 정말 허접하기 그지없군요 (주소가 삼각형에 밀려서 표시되고 있네요 -_-)

 

이제 게임에서 마우스를 클릭하여 다음 대사로 넘어가 봅시다.

 

그러면 게임이 멈추고, 아랄트랜스의 디버깅 창에 현재 메모리 정보들이 출력되는 것을 보실 수 있습니다.

 


 

, 여러분은 이제 410320 함수가 호출된 순간을 보고 계십니다.

 

뭔진 잘 모르겠지만 주인공이 너희를 일생 길러 준다라는 말을 하고 싶었던 모양이군요. (전 저 주인공 녀석을 한번 길러보고 싶군요. -_-)

 

이 화면을 보니 아까 인자가 2개였던 의문이 풀리는 군요.

 

[ESP+4]에는 대사를, [ESP+C]에는 인물 이름을 넣어서 호출하는 함수 같아 보입니다.

 

* 여기서 질문 하나 *

- EAX, EDX 도 대사를 담고 있는데 왜 저 두개는 안쓰나요?

프로그램에서 함수 호출 시 인자전달은 대부분 스택을 사용합니다. Fastcall 같은 호출 규약에선 가끔 레지스터를 일부분 사용하기도 하지만, cdecl, stdcall, fastcall 등 대부분의 함수 호출 규약들이 스택에 인자를 집어 넣는 점에 있어선 모두 동일합니다.

위처럼 함수가 호출되는 순간 EAX EBX 같은 레지스터에 문자열이 있는 경우, 앞의 함수에서 무언가 처리하다가 남은 찌꺼기 값이 공교롭게도 우리가 원하는 문자열을 가리키고 있는 경우일 수 있습니다. 따라서 왠만하면 [ESP+n]같이 스택으로 넘어온 인자를 집중 공략하는 것이 가장 안정적입니다.

 

 

그럼

 

모든 수수께끼는 풀렸다!!

 

위의 함수주소와 인자 위치를 메모장에 적어 놓읍시다.

 

후킹할 주소 : 410320

번역할 인자 : [ESP+4], [ESP+C]

 

(복사, 붙여넣기 같은 고급 기능은 아직 없으니 수작업으로 적어놓습니다 -_-)

 

끄적..끄적,,

 

 

AT코드의 적용

 

!! 이제 대망의 ATCode 테스트 시간입니다.

 

아랄 트랜스 설정창에서 후킹 플러그인을 ATCode를 선택합니다.

 

그리고 옵션 버튼을 눌러봅시다.

 

 


여기서
후킹주소 추가 버튼을 누릅니다.

 

 


우리가 찾았던 함수 410320을 입력하고 확인을 누릅니다.

 

그러면 공통 탭 옆에 우리가 입력한 주소의 탭이 새로 생깁니다.

 

 


여기서
추가를 눌러 번역할 인자를 등록합시다.

 

 


[ESP+4], [ESP+C]
두 개 다 해줍시다.

 

확인을 누르고 게임을 진행 해 봅시다.

 



한글 대사가 나오네요.

 

참고로 하단의 바로가기 생성을 누르시면 현재 옵션 그대로 바로 게임을 실행시킬 수 있는 단축 아이콘을 만들 수 있습니다.

 

그러므로 게임 할 때 마다 AT코드를 입력하지 않아도, 편하게 이전 설정 그대로 게임을 즐기실 수 있습니다.

 

 


맺으며…

 

이러한 방법으로 다른 게임들도 AT Code를 찾을 수 있습니다.

 

제가 분석 해볼 수 있는 게임들은 한계가 있으므로, 실력 있는 많은 분들의 참여가 필요합니다.

 

또한 위의 디버깅 툴도 모든 함수를 정확하게 다 표시할 수 없는 경우도 있으므로, 올리 디버거 같은 전문 디버깅 툴을 능숙하게 다룰 줄 아시는 분들께는 필요 없는 플러그인 같네요. ㅎㅎ

 

궁금한 점이나 버그 신고는 언제든 환영이오니 적극적인 참여 부탁드립니다.

 

감사합니당 ^-^

 

불타는구고마

2008.04.21
03:08:27

엄청납니다.. 달리 할말이 없네요 .. 가능하네요 이런게 ㅎㄷㄷ

미즈호

2008.04.22
22:36:50

프로그램 자체가 완전..혁명에 가까운 것이군요..ㄷㄷ
앞으로 발전하면 엄청난 물건으로 탄생하는군요..ㄷㄷ

RAY

2008.04.24
20:39:45
전 영어로 스크립트 에러 이렇게 떠야 하는데 어떻게 해야하나요? 그리고 방법자세히 알려주심점 감사합니다.

관리자

2008.04.24
22:29:06
안녕하세요 레이님
ATCode 플러그인에 대한 메뉴얼은 조만간 올리겠습니다.

음..

2008.04.28
00:03:23
디버거로 안잡히면 방법이 없나요?-_-;;;

관리자

2008.04.28
01:10:59
올리디버거로 GetGlyphOutline, TextOut 함수를 역추적하는 방법도 있습니다.
ㄷㄷㄷ..

메니저

2008.05.19
21:41:47

이렇게 쓰는거였구나...

....

2008.06.01
04:34:39
F2 누르면 추적도 될때 안될때 있고, 게임 멈췄다가 튕기네요. 어디서 실수한건가... 코드 찾는 도중에 초보자들이 실수할 만한 점을 같이 지적해 주시면...

2008.06.18
21:12:36

그거 무료 배포 하시지말고 그냥 특허내시고 파시지 ㅎㅎㅎ 장난으로 해본소리...

ㄷㄷ

2008.06.26
15:14:13

이거 먼저 특허내놓는게 어떤지..ㄷㄷ;;
대기업이 먼저 특허내놓으면 비싼 가격에 판매할텐데...ㄷㄷ

메레옹

2008.07.01
23:29:11
크허 ㅠ ㅠ 프로그램이 어떻게 돌아가는지는 GWbasic밖에 접해보지 않은 나로서는 -ㅁ-;;; 뭔말인지 하나도 모르겠네요 ㅠ ㅠ

이런거 공부하려면 뭐부터 시작해야되나요 ?

꺼마개미

2008.07.06
04:12:38

휴... 잘 배우고 갑니다...
요즘 아랄에 힘을 느낀지라 꼭 제손으로 AT코드를 찾고싶기에...
시간좀 내서 시행착오를 거친 결과... 겨우 대충 이라도 알겠네여... ㅇㅅㅇa

aaa

2008.07.09
16:39:01

F2를 누르면 게임이 멈춰버리는군요;;

Craysia

2008.07.11
00:13:11

Ver.2에서는 어떻게 하나요 똑같나요? 완전 초보라서 제가;;;

靑星夢

2008.07.24
03:26:05
방금 가입해서 신세계를 구경중  존경입니다.

푸른간지

2008.07.24
21:08:24
그저 안된다...

타파코쿠

2008.07.25
17:59:04
...정말.. 대단합니다. 대단해요.. 할 말을 잃게 만드는 프로그램이네요..

....

못하겟어요

2008.07.28
23:26:34

"비밀글입니다."

:

ㄷㄷ..

2008.07.29
23:45:14
저기요 죄송한데 햇긴햇는데 케릭들 말이 안보여요.. 전국란스에요

히뎨얌

2008.09.10
18:26:31

못하겠어요..ㅠㅠ 힘들어요

골디마그

2008.10.10
13:15:58
감사합니다

사랑이란 뭐지

2008.10.17
00:05:06
저는 대부분 안돼는군요;; 다른건 몰라도 디버깅창에 한글이 제대로 뜨질않아요;;

이베르

2008.10.18
21:10:49
그냥 대단하다 ...라는 생각밖에는 ,,

부엉군

2008.12.15
01:31:45
음욕의 성희에선
이거 디버깅에이티코드 하고 이지트랜스엑스피 두개 설정해놓고

디버깅창띄우고
대사넘겨도
디버깅창에는 아무거도안뜨는데요..
사진도 올림
첨부 :
de.JPG [File Size:107.0KB/Download832]

니맘대로튀

2008.12.25
00:29:55
것 참;; 생각없이 쓰다가 at코드를 스스로 알아내보고 싶어서 들렀는데... 가히 혁명적이군요. 위의 ㄷㄷ 님은 말씀대로 특허를 내보심이 어떠실지...

MinamiChiaki

2008.12.28
16:31:24
정말 감사합니다

ajsdp

2009.01.19
04:57:36
어.. 어렵다

그로테스크

2009.02.28
08:41:15
죄송하지만.. 계속 팅기는데요..;;;

ㅁㄴㅇㄹ

2009.08.08
01:24:40
디버깅창이 안뜨는데요.. 어케하는지좀 제발 알켜주세요

유스토마

2009.08.17
13:18:28

보인다! 나에게도 AT코드가 보여!

ㅇㄴㅇㅁ

2009.10.14
15:48:56

저기요 ...... 똑같이햇는데 안되네요 ...

난 병신인거임?

주하

2010.07.17
12:16:46

똑같이 했는데 글씨가 옆으로 뉘여서 나오고 일본어인데ㅜㅜㅜ 어떻게 해야하죠?

대갈장군

2010.11.20
22:28:02

할떄 마다 매번 주소가 바껴요 ㅜㅜ 전 바보인가바요 ㅜ
그리고 F2누르고 대사넘기면 바로 다음대사가 아래쪽메모리에 잡히네요 ㅜㅜ
이럴떈 어떻게해야되요??

신도라에몽

2011.06.26
15:03:39

잘 안되네요 ㅠㅠ (님이 시킨데로 다했음..)

한글이 맞긴 한데 저렇게 나와요 ㅠ

해결 방안좀

그리고 아까는 게임도 되더니 지금은 갑자기 꺼지네요 ㅠ

 

첨부 :
K-1.png [File Size:2.8KB/Download1,374]

밝다

2011.09.24
20:11:02

코드 찾을 왜 대사가 한글화 된게 찾아도 없는지ㅌㅌ

사카라디아

2013.07.31
23:30:51

이게 그나마 쉬워서 이걸로 해볼려고 했더니 튕기네요..ㅠㅠ 결국 올리디버거를..ㅠㅠ 

crowgod

2013.10.21
17:08:15

디버그 창에는 해석까지 다되서 나오는데 정작 적용이 안되요.

인노첸사

2013.12.28
23:06:10

신세계를 경험했습니다. 감사합니다~

신병이중대

2014.03.30
23:28:22

이미지가 반쯤 다잘려나갔읍니다

태조왕

2014.06.28
09:53:20

액박을 복구 해주시면 많은 도움이 될거 같습니다.

카이리시아

2014.06.28
23:26:27

전부 엑박이네요...

오성범

2014.07.05
17:57:10

사진이안떠서 잘 모르겠어요

코모리유이

2015.02.02
21:37:20

사진이 안보입니다.

wespone

2015.02.07
20:28:19

siglusengine은 어떻게 해야되나요?ㅜ 플러그인을 디버깅으로 바꾸고 실행하면 자꾸 튕김니다ㅜ

ghdcksgml96

2015.05.27
19:40:46

대부분 아니면 과반수의 엔진이 가능한건가요???

swh05284@gmail.com

2015.07.11
21:45:53

역시 저만 사진이 안뜨는게 아니였군요.

그리고 혹시 디버깅후 텍스트 넘기면 렉 엄청나게 걸리는데 저만 그런가요?

컴 사양은 충분하다고 생각되는데 말이죠...

List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
공지 아랄트랜스로 게임하기 앞서 기본 셋팅 확인하기! [4] file TwoComet 40754   2012-08-30 2014-02-26 20:12
공지 아랄트랜스 - 초보자 가이드 [94] file Hide_D 319522   2008-07-16 2015-02-27 18:02
공지 모든 플러그인, 필터 안내 ('09.03.13) [20] Hide_D 191534   2008-10-31 2009-03-13 23:48
공지 아랄트랜스 0.2 - 초보자 가이드 [109] file 아랄 506021   2008-07-16 2013-12-31 09:32
» AT 코드 찾는 방법 [46] file 아랄 270527 3 2008-04-21 2021-01-03 13:14
안녕하세요. 이번에 아랄 트랜스 0.2를 사용하시는 유저분들께서 ATCode 란 것에 대해 많이들 궁금해 하실 것 같아 간략하게 나마 설명을 드리고자 합니다. 우선 ATCode는 아랄트랜스에서 사용하는 후커 코드라고 보시면 됩니다. AGTH 로 다양한 후커 옵션을 ...  
215 기리기리엔진에 대해 여러가지 [3] 고토회복 8455   2012-06-25 2015-12-06 04:09
1. 무료엔진이라는 겁니다 이걸 왜 이야기 하냐 하면 그러므로 버전별로 안전판 원본이 있어요 도대체 무슨 이야기야? 하는 분들 많을듯... 어느 회사가 기리기리로 게임을 제작합니다.. 버전별로 전부 툴이 있지요 ^^ 그개 다 공개고 자 여기에서 어느 회사가...  
214 cs2엔진 게임에서 대사창이 안나올경우 file 별초군 692   2015-12-03 2015-12-03 18:52
 
213 [강좌] 올리디버거로 ATCode 코드를 찾아보자 (1) [16] file 아랄 98775   2008-05-18 2015-12-02 16:11
 
212 Sho&#6489lԀ &#1... AngeliaTolmer6414 378   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ᥱ.  
211 게시물 분류작업 미래도 504   2015-09-14 2015-09-14 05:09
게시물 분류작업입니다. 주석달기전에 일단 분류부터.. http://lab.aralgood.com/index.php?mid=board_lecture&document_srl=게시물번호 게시물번호에 해당 번호 복붙해서 들어가면됩니다. 찾아보니, 똑같은 게시물이 두개있는경우가 있더군요. 과거 폴라...  
210 [VNR홈페이지]게임이름으로 게임정보 찾기 미래도 3700   2015-09-13 2015-09-13 03:43
게임 정보를 빠르게 찾는 법에 대해 소개합니다. 개인적으로 엔진정리와 작업을 하고 있으나.. 금칙어 크리때문에.. VNR 홈페이지에서 일종의 데이터베이스를 제공합니다. 물론 정보를 수집해서 올려놓은 것이기에 플레이하지 않은 것은 지원하지 않습니다. 주...  
209 사진이 깨진 글에서 사진순서 맞추기 file 미래도 441   2015-09-13 2015-09-13 03:08
 
208 게임 업데이트후 코드먹통될때(예제. FATAL ZERO ACTION) [2] file 두병더더 3156   2012-08-27 2015-09-13 02:52
 
207 나도 준한글화를 만들어보쟈 ' -' [15] 미히 35841   2009-03-07 2015-08-30 11:00
晝下がり 제목이 준한글화 만들어보자인데 헛소리구요 사실은 Custom Script (사용자 대본) 사용설명서 입니다. 그런데 완전히 헛소리가 아닌게 또 [Custom Script(사용자 대본) 이하 사용자 대본]으로 만드는것이기 때문에 헛소리가 아니란 말 입니다. 그러...  
206 PhantOm:디버깅이 제한된 프로세스 디버깅하기 [1] 미래도 1455   2015-08-23 2015-08-25 19:46
사실 VNR 스크립트 주석에서 퍼옴 椎名里緒, 시나리오 엔진의 경우 Themida로 디버깅을 막았습니다.(다른 디버깅방지 엔진도 비슷할꺼라 생각함) - OllyDbg로 열 때, 게임이 실행되지 않는다. - 게임 모듈 메모리 공간이 수정하는 것을 막는다. 대체로 이런 특...  
205 SiglusEngine 복불복 막장드립 [5] file 두병더더 7903   2012-08-12 2015-08-11 16:01
 
204 ATCode 플러그인 - 설명서 [2] file 아랄 65477   2008-04-25 2015-07-25 00:21
 
203 [번역률향상]Ehnd+꿀도르 설치, 허니엔드 [2] 미래도 35662   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...  
202 오토보쿠2 아랄을 후커처럼 사용해보자. [3] file Ria- 6925   2010-07-03 2015-04-23 01:06
 
201 조금이라도 아랄트랜스를 빨리 쓰고 싶은 사람들을 위한 팁! [2] Hide_D 13196   2009-12-06 2015-04-12 15:59
AGTH와는 달리 아랄트랜스 속도가 느려지면 게임 속도 자체가 느려지기 때문에, 이래저래 골치가 아프기 마련이죠. 아랄트랜스에서 속도를 느리게 만드는건 다른게 아니라 '번역 속도'입니다. 딴 필터 100개 끼워봐야 번역속도로 느린 걸 당할 게 없으니까요....  
200 피시의 엔진별 야메찾기 리스트 (11/117) - 120830 update [10] file TwoComet 6980   2012-08-08 2015-02-24 03:31
 
199 후크하면 아랄트랜스가 소리소문없이 사라지는 분은 [1] 키리아스 5253   2011-01-17 2015-02-11 23:17
혹시 아랄트랜스가 바탕화면에 있지 않나요? 아랄트랜스를 내 문서라든가 어디든지 집어넣으세요. 세 줄 관리해야 하는데... 정말 이것 뿐입니다 =_= 경로가 길어져서 그런 건지, 한글이 들어가서 그런 건진 모르겠어요.  
198 코드를 찾아 여행하는 히치하이커를 위한 작은 팁 [1] 어린나무 7921   2013-01-22 2014-09-26 16:06
의지의 한국인어쩌면 이글은 올라가자마자 짤릴거 같지만 일단은 글을 써보도록 하겠습니다. 일단 불순한의도로 가입을 하였고 많은 능력자분들의 도움으로 게임을 즐겨왔습니다.(하드에 미연시나 야동, 기타 성인물이 없으신 분만 저를 욕하세요) 아무튼 그중...