본문 바로가기

쓰기

이제는 ATCode 까지 손을 대버렸습니다 -_-



차이점이 느껴지십니까? ;;

/a:ATCode {
ENCODEKOR,FORCEFONT(5),
HOOK(0x004A5CDF,TRANS(ECX,SOW)), // 대사
HOOK(0x004D84F0,TRANS([ESP+0x4],SOW)), // 선택지
HOOK(0x004A5600,TRANS([ESP+0x8],PTRCHEAT)) // 이름
}

/t:MultiPlugin{preKoFilter{},CmdFilter{OVERWRITE(FALSE)},ezTransXP{},CmdFilter{}}

빨간 색 부분을 주의해 넣어주세요; SOW는 Script OverWrite 약자로.. 뭔가 대단한 이름이 생각나지 않아 그냥 붙였습니다. ㅡ.,ㅡ

* 원리

리얼라이브는 스크립트 전체를 메모리에 올려놓고 거기서 직접 데이타를 읽어 화면에 뿌려줍니다. 그래서 번역문이 원문보다 긴 경우 넣을 공간이 없기 때문에 원문 길이에 맞게 번역문을 넣어줘야 합니다.

예:
원문 - zz ABCD wxyy (여기서 zz, wxyy 등은 스크립트, ABCD는 대사임)
번역 : ABCD = 가나다라마바  (원문이 4자인데 번역문은 6자)
번역문 - zz 가나다라 wxyy (원문이 4자밖에 되지 않으므로 번역문 뒤를 잘라서 강제로 4자로 만든다)

SOW, 스크립트 덮어쓰기 후 복구 방식은 다음과 같이 작동합니다.

1. 번역문의 길이만큼 데이타를 백업받습니다. 위치는 번역문의 끝이 딱 원문의 끝에 맞도록.
원문 - zz ABCD wxyy
백업 - z ABCD (6자 백업)

2. 백업받고 난 원문 위치에 번역문을 복사합니다.
복사 후 원문 - z가나다라마바 wxyy (원본 대사의 앞부분 (z )이 깨졌음)

3. 대사 출력 포인터를 번역문의 처음으로 돌립니다. 곧, 원래 A 자리에서 출력해야 하는데 가 자리에서 출력하도록
대사 출력 포인터를 거꾸로 2칸 옮깁니다. 이건 포인터 바꿔치기와 동일합니다.

4. 대사가 출력됩니다.

5. 대사 출력 후 원문을 복구합니다.
복구 전 원문 - z가나다라마바 wxyy
백업된 원문 - z ABCD
복구 후 원문 - zz ABCD wxyy

Hide_D

2008.07.21
17:52:05
이젠 RealLive라고 플러그인 이름을 바꾸기만 하면 되는군요[..]

Hide_D

2008.07.21
18:08:25
으음...
그나저나 세이브는 어떨까요?

whoami

2008.07.21
18:10:56
세이브는 아마 안 될 겁니다;

... 그런데.. 한글번역중에도 세이브되는 포인트가 하나 있습니다; 선택지에서는 한글상태에서도 세이브가 됩니다.

나는누구인감?

2008.07.21
18:24:06

오오오. 굉장한걸 만드셨군요!

whoami

2008.07.21
18:24:52

아뇨. 지금까지 preKoFilter 나 CmdFilter 가 하던 일은 동일합니다. 단지 예전에 사용하던 덮어쓰기 방식은 글자수 제한이 있었지만 SOW는 글자수 제한이 없습니다.. 곧, 원문보다 번역문이 길어도 전부 표시해줍니다. 그것만 다르다고 생각하면 됩니다.

그래서 CmdFilter 에 OVERWRITE(FALSE) 로 덮어쓰기 모드 (글자 길이를 맞춰주는 모드)를 강제로 꺼 준 겁니다.

나는누구인감?

2008.07.21
18:50:29
ATCode에서 원문 받아서 CmdFilter로 넘기고 번역하고 CmdFilter에서 한번 더 거르고 번역된 문장이 ATCode로 와서 ATCode에서 번역된 문장을 스크립트와 합체해서 출력한뒤 ATCode에서 메모리에다가 원문을 다시 복구해서 문제발생의 소지를 없애버리는것 아닌가요?

저도 잘 모르겠습니다...
후앰아이님이 명쾌한 설명을 해주셔야할듯...

어이쿠 정착A님 코멘트를 삭제하시면 저만 바보되는디...

whoami

2008.07.21
20:45:36

지나가다정착한이A님// 맞습니다. 제대로 이해하신 것 같네요. 그래서 예전 코드인 ECX+0x3 인가? 를 안쓰고 코드가 완전 계산된 부분에서 ATCode를 설정해 준 것입니다. 아마 [레지스터+값] 이나 [레지스터], 레지스터 형식은 되겠지만 [레지스터]+값 혹은 레지스터+값, [레지스터+값]+[레지스터+값] 같은 형태는 제대로 작동하지 않을 것입니다. 이 점은 포인터 바꿔치기 방식도 동일할 겁니다.

아래의 대사 포인트 스크린샷을 참조하시면 기존의 ECX+0x3 하고 지금의 ECX 하고의 차이점을 찾으실 수 있을 겁니다.. 그리고 이 어셈블리 패턴은 *모든* 리얼라이브 게임에서 유효한 것 같습니다. 곧, 이 지점만 찾으면 모든 리얼라이브 게임에서 대사는 한글로 볼 수 있을 겁니다.

첨부 :
reallive.script.PNG [File Size:63.7KB/Download44]

Hide_D

2008.07.22
00:00:58
으음.... 제가 생각하는게 맞나요?

 문장들

번역문장 ■
  캐시 □
 포인터 ▽
라고 할때
        ▽             
■■■■■■■■■■■■■■■■■■■■■■■■
□□□□□□□□□□□□□□□□
이걸
     ▽             
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■□□□□□□
요렇게 해서

              ▽ 
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■□□□□□□


                            ▽
■■■■■■■■■■■■■■■■■■■■■■■■
□□□□□□□□□□□□□□□□
이렇게 간다는 건가요?

그 다음단계는
                    ▽
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■□□□□□
이거구요?

whoami

2008.07.22
17:34:38
Hide_D군님// 네. 맞습니다.

미히

2008.07.26
17:35:59

감사감사 감사합니다 !!

List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
149 Talk 아나 ㅅㅂ VS2008 안쓸랍니다. [5] Hide_D 12867   2009-04-02 2009-04-03 21:16
제컴이 ㅄ인지 설치할때 ㅄ이 된건진 잘 모르겠는데, 쓰기 갑갑해 미치겠습니다ㅣ -_-; Visual Studio 2008 SP1입니다. 자주 발생하는 현상이 예를 들어 int j=0; for(int i=0;i<28;i++) { j+=i; } for(int i=0;i<28;i++) { j+=i; } _wsprintf(L"%d",j); 요런 ...  
148 Archive ATPluginFrame 프레임워크 20090901 테스트 버전.. file whoami 12897   2009-09-01 2009-09-01 22:49
 
147 Talk 정음 글로벌 2005에 내장된 번역기 [5] Hide_D 12901   2008-11-09 2008-11-09 15:24
ezTransXP보다 좀더 좋아보이네요. 특히 구어표현이 훨씬 낫네요 단순 후커사전 제보 문장들 중에 절반은 수정이 필요없을정도  
146 Archive [플러그인,소스] KoFilter 테스트 버전 20081119 file whoami 12902   2008-11-19 2009-01-06 01:10
 
145 Talk [소스] ConsoleTrans + 질문 [1] file Hide_D 13001   2009-08-11 2009-08-12 23:34
 
144 Archive [플러그인] FixLine 테스트버전 081230 [4] file Hide_D 13238   2008-12-30 2008-12-31 00:39
 
143 Talk QuickTrans2 자료 백업 file Hide_D 13246   2009-08-26 2009-08-26 02:53
 
142 Talk [아랄0.3] 후킹주소 추가하고 번역인자 선택시 오류인지 [3] 암흑마제 13263   2009-12-21 2009-12-21 23:22
아랄// 아랄님 ^^ 0.3 실행하여 0.2에서 찾은 코드로 적용을 할려고 하니 문제가 있는 듯 하네요 뭐냐면 후킹주소 넣고 번역인자 추가했을때 한 후킹주소에 번역인자가 2개가 있는 경우가 더러 있잖아요 그때 처음 인자 말고 두번째 인자는 무조건 아무것도 ...  
141 Talk [질문]번역플러그인에서 필터후처리로 넘어갈때.. [1] 호기 13282   2009-12-19 2009-12-19 03:08
우선 0.3 출시 축하드리고요...^^마침 전국란스 깔려 있어서 테스트 해보았는데... 음 실행 파일 해시가 안맞는다고 나오네요.. 머 이거야 제가 호환되는 버전의 전국란스를 다시 설치하거나 혹은... 이 실행파일 버전을... 추가등록시켜주시던가 하면 될거 같...  
140 Talk 튕기는 문제에 대해서 [6] Hide_D 13286   2009-11-26 2009-12-15 02:55
뭐 다들 아시다시피(?) 대부분의 문제는 보안툴이나 백신에 대해선 충돌하기 때문인데, 여태까지는 소극적으로 대응해왔는데 이젠 좀 적극적으로 뭐가 문제인지를 찾아봐야겠습니다. 해서 다음을 조사해서 보고서를 작성하는 프로그램을 만들어볼 예정입니다~ ...  
139 Talk 아랄0.3 20일자 업데이트 적용시 구동 스샷(반반??) [4] file 암흑마제 13305   2009-12-21 2009-12-21 18:35
 
138 Archive [플러그인,소스] Korean Duplication Checker 20090115 [2] file Hide_D 13334   2009-01-14 2009-01-19 23:34
 
137 OtherFiles fixline 테스트 2차 file 처음처럼만 13341   2008-12-16 2008-12-16 15:52
 
136 Talk [오류] 확장자가 ats 인 파일 실행시 오류 납니다. [1] 암흑마제 13360   2009-12-20 2009-12-20 21:08
auto run invalid parameter or setting file! 이라고 뜨는데요 확장자가 ats 인 파일을 실행시키면 이렇게 되네요 참고로 아랄0.3이고 0.3은 설치 잘 되었습니다.  
135 Archive [플러그인,소스] FixLine 테스트버전 081220_2 [2] file Hide_D 13376   2008-12-20 2008-12-21 08:29
 
134 Archive [플러그인, 소스] FixLine 테스트 버전 Archive(08.31 12:12 갱신) [1] file Hide_D 13429   2008-08-30 2009-01-18 20:11
 
133 Talk 번역기(eztransXP)가 만드는 몇가지 문제들 - 1 [1] Hide_D 13437   2009-12-16 2009-12-16 21:32
이지트랜스가 만드는 몇가지 문제에 대해서 다뤄보려고 합니다. 우선 첫번째로 일본어의 히라가나, 또는 가타카나 한글자가 번역기로 입력될경우 결과물이 공백(length = 0)이라는 문제입니다. 이 문제는 대개 게임 엔진에서 '강제로 한글자씩 출력하는 경우'(...  
» Archive [플러그인, 소스] ATCode 테스트 버전 20080721 [10] file whoami 13514   2008-07-21 2011-06-28 01:25
이제는 ATCode 까지 손을 대버렸습니다 -_- 차이점이 느껴지십니까? ;; /a:ATCode { ENCODEKOR,FORCEFONT(5), HOOK(0x004A5CDF,TRANS(ECX,SOW)), // 대사 HOOK(0x004D84F0,TRANS([ESP+0x4],SOW)), // 선택지 HOOK(0x004A5600,TRANS([ESP+0x8],PTRCHEAT)) // 이...  
131 Talk 참 오묘한 윈도우~ 호기 13568   2009-04-04 2009-04-04 01:02
실수로.... malloc으로 잡은걸 HeapFree 하고 있었네요... (머 정확히 말자면 HeapCreate로 새 힙영역 확보하고 할당 해제 하는걸 구축했습니다만.... 정작 할당부분에서 malloc을썼던거죠) 문제는 이렇게 잘못짠걸 1개월이나 지난후에 알았다는 겁니다. 즉 그...  
130 Talk 고칠거? [10] Hide_D 13651   2009-11-28 2009-12-17 18:13
아랄 처음 켰을때 프로세스 먼져 보이는거 아랄만 아랄로 프로세스에 안뜬다는거. by 피시 제 덧[..] 이지트랜스 경로 지정하면 앞으론 고정해봅시다 ㅇㅇ