본문 바로가기

쓰기

에그헤드의 필터 기능을 타 써드파티 프로그램에서도 사용할 수 있게 하자는 발상으로 이지트랜스 플러그인인 Ehnd를 제작하게 되었습니다. 플러그인이라고 하는 이유는 Proxy DLL 기법을 이용해 구현하였고 (Ehnd의 DLL 이름은 J2KEngine.dll, 기존 이지트랜스 엔진 이름은 J2KEngine.dlx) 실제로 이지트랜스 내부 루틴에 간섭하기도 하기 때문입니다.


아랄트랜스에서 MultiByteToWideChar를 호출할 때 문자를 변환시키는데, Ehnd 내부에서 몇차례 MultiByteToWideChar / WideCharToMultiByte를 호출하기 때문에 아랄트랜스 후킹으로 인해 정상적인 번역이 이루어지지 않는 문제가 있어 아랄트랜스가 감지되면 원 함수로만 호출하도록 변경했습니다.


내부적으로 이지트랜스의 사용자 사전 루틴을 최적화하기 때문에 필터를 안쓰시고 단순만 쓰시는 분들도 사용하시는 분들이 많은데, ehnd와아랄을 같이 쓰시는 분들이 튕김 등의 불안정한 문제가 계속 보고되어 글을 올립니다.


(ehnd에 대한 자세한 내용은 http://foolmaker.blog.me/30165239769 여기를 참고..)


여러차례 요청해보려고 했지만 왠지 모르게 차단된 IP라고 뜨는 바람에 글을 쓰지 못했네요 =_=

제 IP는 115.23.216.* 입니다. 작년 가입해서 글을 쓸때부터 차단되었다고 뜨는데 IP 문제 해결 부탁드립니다. 현재는 오페라 오프로드 모드로 작성중입니다.

분류 :
Talk
조회 수 :
3430
등록일 :
2014.02.27
08:25:57
엮인글 :
https://arallab.hided.net/1794049/9bc/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/1794049

유리에리무리

2014.02.27
14:56:59

감사합니다!

whoami

2014.02.27
15:13:26

일단 115.23.216 으로 시작되는 스팸필터링을 지웠습니다. 자동 denied 가 되어 있는데 예전에 비슷한 IP로 누군가 뻘짓이라도 한 모양입니다...;; 아시겠지만 버그든 충돌이든 재현이 가능하지 않으면 고치지 못하니 좀 더 자세한 상황설명 부탁드립니다...

kiereh

2014.02.28
00:25:49

아랄 ATCode 플레이 시 특이한 문제가 없지만, Kirikiri 플러그인과 같이 쓰면 가끔 스크립트 오류가 나면서 충돌 문제가 나는 것을 확인했습니다.


Venus Blood GIGA의 경우 ATCode 플러그인 사용시 Ehnd 설치 유저들에게서 튕김 현상이 나타나고 있네요.

whoami

2014.02.28
01:47:50

음.. 일단 기리기리하고 비너스블러드.. 그리고 위에 적으신 MYC 블로그 내에서 DumpText 에서 문제가 생긴다고

하는 글도 봤습니다. 일단 기리기리나 ATCode 같은 경우 엄청나게 큰 플러그인이므로 문제를 찾기 어렵습니다만

DumpText 같은 경우 실제 사용해 보시고 코드를 보시면 아시겠지만 받은 문자열을 유니코드로 바꿔서 별도의

로그창에 뿌려주는 기능밖에 없거든요? 그런데 테스트해보니 DumpText 를 넣으면 안넣었을 때에는 그냥 넘어

가던 것이 어느정도 게임이 진행이 되다가 에러가 뜨는 것을 발견했습니다.

(소스: https://bitbucket.org/AralGood/araltrans-0.2/src/0477eadd531de716a04300210ecd2938968952f3/Filter/DumpText/?at=default)

 

그래서.. 혹시라고 생각하지만 아직 MultiByteToWideChar / WideCharToMultiByte 쪽에서 문제가 생기는 것이 아닌가

하고 조심스럽게 추측해 봅니다... 비너스블러드나 기리기리 역시 내부적으로 유니코드를 쓰는 게임(툴) 이므로

가능성이 꽤 있는 편이고요. 현재 Ehnd 속에서 어떻게 아랄트랜스를 피해 이 두 함수를 처리하는지 알 수가

없습니다만 혹시 관련 내용을 알려주실 수 있으신지요?

 

혹은.. 어차피 아랄트랜스 소스는 완전공개가 되어 있으므로 아무래도 두 소스를 같이 볼 수 있는 kiereh님

(MYC 의 소쿠리 님이시겠죠?) 께서 문제점을 찾으실 수 있지 않을까 하는 생각도 듭니다만..

 

현재 메인 소스 repository 는 문제가 있어서 bitbucket 쪽을 가져다 쓰고 있으므로 참고하시겠다면

이쪽의 소스를 보시기 바랍니다. https://bitbucket.org/AralGood/araltrans-0.2/overview 에서 보실 수 있으며

원하시면 팀원으로 invite 도 해드립니다.. +_+

 

 

kiereh

2014.03.01
09:00:04

현재 Ehnd에서는 MultiByteToWideChar / WideCharToMultiByte의 첫 네 바이트를 비교해서 수정이 되었는지 아닌지를 판단합니다. ATCode 플러그인이 함수를 변경했다고 확인할 경우, 내부적으로 원래 함수를 호출하도록 되어 있습니다. 에그헤드 등에서 유니코드를 출력할 수 있게끔 대응하는 코드가 있는데 이 부분이 문제가 있는것 같습니다. 시간을 내서 여러가지 확인해주신 점 감사드립니다 ^^

 

팀원 초대는 잘 받겠습니다. 그런데 요즘 혼자 번역기 프로젝트를 진행중이라 참여를 많이 할수 있을지는 미지수네요. sokcuri 네이버 메일입니다. 6월달에 Prototype을 낼 계획으로 작업하고 있으니 이쪽으로도 아무쪼록 잘 부탁드립니다.

whoami

2014.03.01
17:59:09

invitation 보냈습니다 ^^ 꼭 제작에 참여하시라는 뜻은 아니고 호환성 등의 문제를 해결하실 때 아랄트랜스 쪽에서 해결가능한 경우 누구에게 부탁하실 수도 있지만 직접 해결도 가능하지 않겠어요? 어차피 공개 프로젝트이고 누구나 참여 가능한 것이니 너무 부담 가지지는 마세요.

List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155436   2008-08-03 2008-12-16 00:03
428 Talk ATCustom - 함수 Reference [47] Hide_D 103937   2010-07-20 2010-08-28 04:59
AralTrans의 Algorithm Plugin ATCustom의 함수 목록입니다. - 문서 상태 - 기본 함수 : 변경 중 변경 확률 보통 고급 함수 : 변경 중 변경 확률 높음 - 기본 함수 목록 - 핵심적인 기능을 가지거나 내부의 C++ 코드를 사용해야만 하는 함수의 목록입니다. 메...  
427 OtherFiles EncodeKor(한국어 <-> 일본어 문자 코드 대치) 재 작성 프로젝트! [16] file Hide_D 75319   2010-05-29 2010-10-25 09:55
 
426 Talk 아랄3 디버깅이 말이죠... [2] file JKLeetro 35689   2010-04-20 2010-10-20 07:18
 
425 Talk AT 0.2에서 내부 버퍼가 4096을 넘을 수 있어야 합니다. [1] Hide_D 34245   2010-07-13 2011-03-04 05:56
ATCode인지 뭔지 내부 버퍼 길이가 4096바이트로 제한되어있어서 그보다 큰 길이가 들어올 경우 문제가 생깁니다. 길이를 제한하는 플러그인들은 모두 대용량의 텍스트도 받아올 수 있도록 처리해야할 것 같습니다.  
424 Talk JSCustom의 초기 골격 코드를 SVN에 커밋했습니다. [1] Hide_D 33949   2010-09-18 2010-10-25 09:57
지금 안된 부분이.... 1. 고수준 함수, 고수준 보조 함수 구현 ( http://wiki.aralgood.com/index.php/JSCustom/FunctionReference ) 2. 아랄트랜스 0.3버전용 함수 구현 3. 아랄트랜스 플러그인 규격과 v8Wrapper 모듈의 연결 4. UI 정도네요. 올리긴 했지만 ...  
423 Talk ATCustom - 프로젝트 소개 [8] Hide_D 32701   2010-07-22 2011-07-14 11:21
- 소개 - ATCustom은 사용자가 직접 메모리 훅 및 메모리 작업을 할 수 있는 Script 기반 Algorithm 플러그인입니다. Google Chrome에 탑재된 v8 JavaScript Engine을 사용하여 JavaScript 파일을 파싱하여 동작하며, ATCustom에서 제공하는 API를 사용하여 작...  
422 Talk 0.3님 제발 자비좀[.....] file 아무개 31299   2010-05-23 2010-05-23 06:20
 
421 Talk 번역 모듈로 인터넷을 이용하는 방법. Hide_D 30165   2010-06-04 2010-06-04 23:54
굳이 번역기를 이지트랜스를 쓰지 않아도 아랄트랜스를 사용하는 방법이 필요합니다. 네이버 번역 등을 인터넷으로 접근해서 쓰는 방법으로 번역 모듈을 만들어 보겠습니다.  
420 OtherFiles [프로그램, 소스] AT 환경 수집기 20100526 [1] file Hide_D 30118   2010-05-26 2016-05-28 15:42
 
419 Talk 0.3님 제발 자비좀[.....] [2] G2m 29951   2010-05-05 2010-05-23 06:21
디에스 이레 뚫으면서 알게된건데 일단 히데찌 말로는 관리자씨가 말하길 0.3 유니코드 완벽이염 ㅇㅇ 라고는 하는데 그 뭐랄까 문장 스크립트 형식이 00 30으로 시작하는 놈은 아랄이가 고대로 씹어 드셔서[............] 이걸 픽스로 잡아도 조트망이고 흠. ...  
418 OtherFiles AralTrans.exe 파일 살짝 수정했습니다. + 아랄씨 계시면 보세요 file Hide_D 28477   2010-06-07 2010-06-07 05:11
 
417 Archive [플러그인] OutRuby 임시 버전 20081012_2 [7] file Hide_D 28333   2008-10-12 2015-07-14 15:18
 
416 OtherFiles [프로그램] 필터 테스트 프로그램 [13] file Hide_D 27998   2008-12-16 2013-06-22 22:20
 
415 Archive [플러그인, 소스] NonCached 테스트 버전 20090709 [3] file whoami 27839   2009-07-09 2009-07-11 01:51
 
414 Talk [0.2] OnPluginInit단에서 스레드를 만들 때 [회피법] Hide_D 27118   2010-06-23 2010-06-23 02:10
http://lab.aralgood.com/board_documents/3202 에 나온대로 플러그인이 초기화되는 시점이 '안전하지' 않기 때문에 Init 단에 스레드를 추가하기가 어려운데, 이를 위한 회피 방법입니다 [OnInitThread에 AfxBeginThread를 사용하면 '무조건' 얼어버리는 현상...  
413 Archive [플러그인] GoogleTrans 테스트 버전 (20100620) file Hide_D 26601   2010-06-20 2010-06-20 16:00
 
412 OtherFiles [소스] Test Network + Google Translate Source - 2 file Hide_D 26517   2010-06-19 2010-06-19 09:59
 
411 Talk [질문] Http POST전송에 대한 이것저것 [3] 호기 24751   2009-09-22 2009-09-23 08:00
에고 Hide_D님과 HaruKaze님덕에 어찌어찌 POST전송을 할수 있게 되었네요 . 다시한번 두분께 너무 감사드리고요.. 전송해서 결과는 받는것은 되지만... 내용에 궁금한것이 두가지 있어서요 이렇게 다시 질문 올립니다. 우선 POST로 Header를 전송할때 말이에...  
410 Archive [플러그인, 소스] KiriKiri 테스트 버전 20090726 [10] file whoami 24511   2009-07-26 2009-07-28 23:52