본문 바로가기

쓰기

 

AralTrans v0.3 Renewal Project

 

개발자 : Aral / Hide_D

시작일 : 2011 4 16

개발환경 : WinNT / vs2010 / native c++ & MFC / SVN

 

 


AralTrans 0.3 주요 컨셉

 

1.     InjectedDLL(기존 ATCTNR.dll) – Server(기존 AralTrans.exe) 방식
과거 0.2 버전의 컨테이너 기능들이 별도 프로세스인 AralTrans.exe로 대거 이동
통신 매커니즘은 미정 : IPC / 이벤트&공유메모리 / 윈도우메시지 등

2.     AT 0.2버전에서 중복된 기능의 모듈화
FontMapper : 기존 한글코드 / 일본어코드 치환하던 기능
UITrans :
윈도우 타이틀 및 메뉴 번역 기능

3.     스크립트 엔진 도입
v8 engine 이 확장성 경량성 측면에서 유리

4.     데이터 파일의 체계적 관리
각 플러그인은 운용중인 파일을 반환하는 인터페이스를 가져야 함
스크립트 파일과 데이터 파일들은 압축파일로 묶여 하나의 패키지로 배포됨
(
, 스크립트 방식을 포기할 경우 xml 또는 ini로 대체)

5.     Launcher의 분리
런쳐에서는 아랄트랜스를 사용할 게임 목록을 모두 가지고 있으며, 0.2에서 가지고 있던 바로가기 등록 방식은 런쳐에 등록된 게임을 '가리키는' 방식으로 대체합니다.

ex : AralTrans.exe /run={~~~~}

대신 게임을 등록할때, 설정을 Import하거나 Export 할 수 있도록 합니다.

6.     Dll 인잭션 방식 추가
remote memory / remote thread
방식을 사용한 인잭션 방식 추가


AralTrans 0.3 구성 파일

 

파일

설명

AralTrans.exe

작은 용량의 런쳐를 따로 둘지는 더 논의가 필요

DLL injection 후 각종 명령 전달

필터/번역 플러그인 로드

번역 컨텍스트 관리

스크립트 관리 (, 스크립트가 실제 수행되는 곳은 게임 프로세스)

그 외 각종 사용자 인터페이스

ATCTNR3.dll (가칭)

특정지점 후킹

In-process(Algorithm) 플러그인 로드

Java 스크립트 엔진 탑재 (더 논의가 필요)

AralUpdater.exe

자동 업데이트 실행파일

기존 0.2 버전꺼 그대로 쓸 계획

/Language 폴더

한글 / 영문

/Plugin 폴더

플러그인들은 모두 이 폴더에.

Algorithm / Filter / Translator 분류 폴더는 없앨까 고려 중

/Common 폴더

MFC 동적 라이브러리 및 기타 필요한 DLL

 

 

 


AralTrans 0.3 외형 (초안)

 

AT3proto_20110417.jpg 

 

 

 

아랄

2011.04.17
18:42:41

위의 프로토타입의 디자인만 들어있는 C# 윈폼 프로젝트 입니다.

 

실제 구성요소간의 상호작용과 세부적인 인터페이스 규격도 얼릉 작성해봐야 될거 같네요.

그래야 문제점이나 보완사항이 보일듯..

첨부 :
AralTrans3Prototype.zip [File Size:203.6KB/Download162]
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
공지 [SVN] AralTrans 0.3 - All Plugins [6] 아랄 10352   2009-10-23 2011-10-19 00:01
공지 [SVN] AralTrans 0.2 - Full Source [2] 아랄 16062   2008-07-22 2010-10-31 01:18
» AralTrans v0.3 Renewal Project [1] file 아랄 5910   2011-04-17 2011-04-17 18:42
AralTrans v0.3 Renewal Project 개발자 : Aral / Hide_D 시작일 : 2011년 4월 16일 개발환경 : WinNT / vs2010 / native c++ & MFC / SVN AralTrans 0.3 주요 컨셉 1. InjectedDLL(기존 ATCTNR.dll) – Server(기존 AralTrans.exe) 방식 과거 0.2 버전의 ...  
11 [0.2] OnPluginInit에서 MessageBox 출력시 주의! Hide_D 6814   2009-12-11 2010-06-30 16:54
이전 이슈에서도 다룬적이 있습니다만. 플러그인이 로드된 시점에서 이 플러그인의 부모 객체(즉 게임)가 제대로 로드 되지 않았을 수 있으므로, Init단에서 에러 등의 이유로 MessageBox를 사용할 경우 부모 객체를 NULL로 주더라도 Sleep(2000); 과 같이 지...  
10 STL iterator 사용시 주의사항 [1] 아랄 7564   2009-10-04 2010-06-30 16:54
<발생한 문제> map 에서 erase 호출 시 잘못된 메모리 참조가 발생. <원인> stl container의 iterator들은 링크드 리스트로 관리되고 있는데, 이들은 함수나 블럭의 시작/종료 시점에서 constructor/destructor 가 자동으로 호출된다. 하지만 goto문이나 inlin...  
9 한 함수에 후킹 포인트를 2개 이상 잡을 수 없습니다. [3] Hide_D 7702   2009-07-20 2010-06-30 16:54
적는 것을 깜빡 하고 있었는데, ATCode나 기타 방법들을 사용할 때, 한 함수 내에서 후킹 포인트는 단 하나만 잡아야 합니다. 아랄트랜스 0.2에서는 후킹과 동시에 실행파일 원본과 그 원본의 복사본을 준비해 놓고 원본의 후킹포인트를 jmp를 사용해서 번역 ...  
8 [부정확] 플러그인에 쓰레드를 사용할때 [2] Hide_D 7456   2009-01-07 2010-06-30 16:54
제 추측이지만, 아랄트랜스의 플러그인 로드 시간은 (게임의) 프로세스 동작 -> 플러그인 로드 -> (게임의) 윈도우 생성 으로 매우 빠른것으로 보이며, 플러그인의 종료 시간은 (게임의) 윈도우 파괴 -> 플러그인 종료(?) -> (게임의) 프로세스 파괴 로, 윈도...  
7 아랄 컨테이너 창이 hidden상태일 수 있으므로 MessageBox 주의! [2] 아랄 7263   2008-11-07 2010-06-30 16:54
플러그인 인자로 넘겨주는 아랄 컨테이너 창의 핸들. 기본 설정이 트레이로 실행되게끔 되어 있을 시 아랄 컨테이너 창은 화면에 보이지 않는다. 그런데도 아랄 컨테이너 창의 핸들을 부모로 삼아 메세지 창 같은 것을 띄우게 되면 절대 보이지 않으며 게임은...  
6 파일 다이얼로그를 띄운 후 작업폴더가 바뀌는 현상 [3] 아랄 7773   2008-10-28 2010-06-30 16:54
바로가기 생성을 위해 파일 다이얼로그 박스를 띄웠더니 그 후 작업 디렉토리가 바뀌는 현상 발생. 파일 다이얼로그를 띄우기 전/후 안전을 위해 다음의 코드를 추가. // 현재 프로세스의 작업 디렉토리 저장 CString strWorkDir; ::GetCurrentDirectory(MAX_...  
5 [소스] 플러그인 개발을 위한 기본 프레임워크 20080810 file whoami 8614   2008-08-10 2010-06-30 16:54
 
4 [문서] MultiPlugin 2 - 필터 플러그인 규격 file whoami 9380   2008-07-26 2010-06-30 16:54
 
3 [개발환경구축] AralTrans 프로젝트 소스 다운받기 [3] file 아랄 8170   2008-07-24 2010-06-30 16:54
 
2 [개발환경구축] TortoiseSVN 설치하기 file 아랄 7708   2008-07-24 2010-06-30 16:54
 
1 [문서] 아랄트랜스 0.2 - 플러그인 규격 [5] file 아랄 9934   2008-06-22 2010-06-30 16:54