본문 바로가기

쓰기

- 소개 -
ATCustom은 사용자가 직접 메모리 훅 및 메모리 작업을 할 수 있는
Script 기반 Algorithm 플러그인입니다.

Google Chrome에 탑재된 v8 JavaScript Engine을 사용하여 JavaScript 파일을 파싱하여 동작하며,
ATCustom에서 제공하는 API를 사용하여 작동합니다.
(API 함수 목록 : http://lab.aralgood.com/37377 )


- 작업 상황 -
(○) v8 JavaScript Engine을 준비합니다.
(○) v8 JavaScript Engine의 사용법을 익힙니다.
(○) ATCustom 플러그인의 골격을 구성합니다.
(○) ATCustom의 기본 API 함수를 구현합니다.
(▷) ATCustom의 고급 API 함수를 구현합니다.
(▷) ATCustom의 UI를 마무리합니다.
( ) ATCustom의 정상 작동 여부를 확인합니다.
분류 :
Talk
조회 수 :
32701
등록일 :
2010.07.22
22:41:22
엮인글 :
https://arallab.hided.net/37587/87a/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/37587

프시쵸

2010.07.24
02:16:29
오오, 수고하십니다!
완성될 날을 손꼽아 기다리도록 하지요.

Hide_D

2010.07.24
03:19:16
ATCustom에서 하나의 스크립트하나의 스레드를 갖습니다.
Hook함수를 통해서 JavaScript에 Event가 걸렸을 지라도
그 함수 흐름은 항상 같은 단일 스레드내에서 동작함을 보증합니다.


이는 ECMAScript(JavaScript) 자체의 특성 때문입니다.

따라서 꼭 병렬도 처리 되어야할 Hook이 있을 경우
JavaScript 파일을 2벌 준비해서 각각 로드해아합니다.

망했네

Hide_D

2010.07.24
03:24:33
주기적으로 함수를 사용하는 Timer 계열 함수를 적용할지에 대해서는 아직 확정되지 않았습니다.
가능한 한 Timer 계열 함수를 준비해 둘 생각입니다.

Hide_D

2010.07.25
01:37:08
아 이런 Google의 v8 자체가 Non Thread-Safe다 -_-;
프로세스당 관리하는 Garbage Collector가 걍 혼자서 놀고 있으니
멀티스레드 따위 될래야 될 수가 없는 구조...

설마 그래서 크롬의 각 탭은 죄다 프로세스로 분리되어 있는건가

Hide_D

2010.07.25
03:59:54
AralTrans내부의 ezTrans 플러그인이 단인 스레드로 동작하고 있으니 결과적으로
내부의 모든 처리 구조가 의미가 없는 상황이니 Single Thread 기반인 v8을 쓸 수도 있지만

우선 Mozilla의 SpiderMonkey(Fireforx JS Engine)를 확인해보고 영 까다롭다 싶으면
v8을 이용해서 구현을 해봐야겠네요.

Hide_D

2010.07.25
23:44:25
Mozilla의 SpiderMonkey는 Thread-Safe로 사용하려면 무조건 NSPR.dll 파일이 필요하기 때문에
아랄트랜스 0.2에서 사용하기는 어려울 것 같습니다.

그냥 Google v8을 사용해서 v8에 스레드 하나만 주는 방법으로 구현해야겠네요 쩝

Hide_D

2010.07.31
22:35:51
필요한 기능
1. 기본 옵션창에서는 단순히 파일명만 지정
   -> 파일은 파일의 수저을 감지해서 새로고침
2. 추가 Trace Window (읽기 전용, 텍스트창)
3. 나머지는 v8 엔진부에서 처리

Hide_D

2010.09.18
15:29:41
이름을 변경했습니다!
앞으로 이 플러그인의 이름은 JSCustom입니다!
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
64 Talk 필터 3개 커밋 완료했습니다. [2] Hide_D 9263   2008-08-11 2009-01-06 01:06
HK2FK KoFilter TextDump whoami님이 안하셨길래 대신; RLCMD는 해도 괜찮을 것 같긴 한데, 이건 안하나요?  
63 Talk RLCmd, KoFilter 의 디버그 로그 기능에 대해.. whoami 9246   2008-07-26 2009-01-06 01:26
슬슬 RLCmd와 KoFilter 의 테스트버전 딱지를 떼어줘야겠는데요, 디버그 로그 기능을 뺄까 그냥 놔둘까 생각중입니다. 어떻게 하면 좋을까요? 1. 필요하므로 그냥 놔둔다. 2. 없애고 로그기능만 넣은 디버그용 로그 필터를 하나 새로 만든다.. (단 디버그용 로...  
62 Talk ATCode 버전업에 대해 - 관리자님 봐주세요.. [1] whoami 9241   2008-07-26 2008-07-27 02:35
오랫동안의 (.. 그리 오랫동안은 아닌 것 같은 기분도 들지만) ATCode 테스트 버전의 테스트로 SOW 모드가 어느정도 안정이 되었다고 생각됩니다. 그래서 기존 ATCode 에 융합해서 버전업을 하고 싶은데 어떻게 했으면 좋겠습니까? 그냥 SVN 내에서 커밋만 하...  
61 Talk Windows 7, UAC, 64bit Hide_D 9107   2011-04-24 2011-06-28 01:25
사실상 요새 구입하는 '최신형' 컴퓨터들이 갖는 세팅이 Windows 7 64bit에다가 UAC를 기본값으로 두고 사용하는 방식인데, 기존 아랄트랜스가 여기에 대응하지 못하는 부분이 많습니다. Windows 7 - 사실 이게 제일 속편합니다. 이거 자체로는 문제되는 부분...  
60 Talk whoami님 [3] Hide_D 9072   2008-07-18 2008-07-18 21:25
아래에 만든 플러그인이 에러가 납니다. 맨 처음에 만들었던 개발모드가 풀유니코드로 작성되어있고, 이녀석이 그냥 돌릴땐 잘 돌아가길래 그냥 Ctrl+C, Ctrl+V 해주고, 위 아래에 Ansi -> Unicode Unicode -> Ansi만 붙여넣은 거라 아무래도 변환부에 문제가 ...  
59 Talk 비주얼베이직에서의 Hash값 생성 코드 작업 file HaruKaze 9022   2009-01-05 2009-02-14 11:04
 
58 Talk http svn을 운용하는건 어떨까요? [3] 아랄 8950   2008-07-20 2009-01-06 01:35
몇몇 개발자 분들께서 열악한 버전관리 환경 속에서도 플러그인을 개발하시는데 조금이나마 도움이 되고싶네요 소스는 svn상으로 함께 공유하며 자발적으로 개선해 나갔으면 하는데요 현재 기존의 플러그인에서 분기되거나 또는 아랄트랜스 기본 기능에 넣고 ...  
57 Talk 전에 쓸모 있는 기능의 2번 관련 Hide_D 8860   2008-07-31 2009-01-06 01:00
whoami님이 생각하시는 것 처럼 정규식도 생각은 해봤는데, 이건 저로서는 무리고 =ㅅ=; 저거 비스무~리 하게 와일드 카드만 사용 할 수 있는 모델을 게획해 봤는데, '이걸 만들어야 할지 말아야 할지' Hide_D는 연습장에 적힌 내용을 소환했다. > 문장의 시작...  
56 Talk SOW 방식 지원 ATCode 플러그인 소스 커밋하였습니다.. [2] whoami 8829   2008-07-27 2008-07-27 21:12
빠진 파일은 없을겁니다; 버전 정보는 손대지 않았습니다. 버전 정보 업데이트 해주시고.. 혹시라도 문제가 있으면 알려주시기 바랍니다. (개인적으로는 아랄님 자주 보고 싶은데 덧글 하나 없이 대화방에도 없이 스리슬쩍 사라져 버리셔서 아쉽.. ㅡ.ㅡ)  
55 Talk 사용자 사전 플러그인에 대해서 설문 [5] Hide_D 8785   2008-07-30 2008-07-30 22:47
으음 기본적으로 모든 게임에 사용되는 사용자 사전 을 목표로 진행중이기 때문에 ezTransXPwithCustomDic이 아니라 ezTransXP가 되고 싶습니다만... 0.2에서는 특별한 다이얼로그가 없기 때문에 이걸 그냥 ezTransXP.dll로 만들어 달라기도 애매한 상황입니다...  
54 Talk 라파에님 한번 테스트해보세요. [2] file Hide_D 8759   2008-08-17 2008-08-17 16:55
 
53 Talk 맵을 이렇게 사용해도 되나요? [2] Hide_D 8705   2008-08-09 2008-08-09 22:13
void CCustomDic2::SetKey(LPCSTR JpnWord, LPCSTR KorWord) { map<UINT,struct DicWord> EmptyMap; struct DicWord TempWord; map<size_t,UINT>::iterator iterBook; TempWord.WordLen = strlen(KorWord); TempWord.WordN = WordN++; UINT Hash=MakeStringHas...  
52 Talk 루비문자 처리 스샷 입니다. file 라파에 8595   2008-08-17 2008-08-17 17:43
 
51 Talk 어휴.. [2] file whoami 8573   2008-08-11 2009-01-06 01:06
 
50 Talk 아... 괴물한자의 정체가 Hide_D 8458   2008-08-23 2009-01-06 01:05
일반적인 과정 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) -> MS949 인데, 괴물세트(?) 후킹시에 MS949 -> Shift-JIS(괴물 한자) 아랄이 인식 하지 못한 텍스트 출력 함수에서 Shift-JIS(괴물 한자) ->...  
49 Talk 플러그인을 다시 Multi2용으로 만들면서 생긴 궁금증 [4] Hide_D 8374   2008-08-09 2009-01-06 01:26
MFC를 그대로 써야하는지라 API용의 기본틀을 쓸순 없어서 새로 만들었는데, extern "C" __declspec(dllexport) BOOL __stdcall OnPluginInit(HWND hSettingWnd, LPSTR cszSettingStringBuffer); extern "C" __declspec(dllexport) BOOL __stdcall OnPluginOpt...  
48 Talk 컨텍스트 구조 제안(핸들러 구조) [4] Hide_D 8336   2011-04-21 2011-04-23 20:17
가령 모듈 3가지가 DumpText, FixLine, EzTransXP 요렇게 있다고 가정할때 var c0_EzTransXP = new EzTransXP("NoSpace"); var c0_DumpText = new DumpText("KOut,KHex,KHex16"); var c0_FixLine = new FixLine("/ATData/c0.dat"); c0_DumpText.setNext(c0_EzT...  
47 Talk VS 2005로 갈아탔습니다 [1] Hide_D 8272   2008-08-03 2009-01-06 01:34
MFC, 리소스 에디터 때문에 도저히 못 버티다가 옮겼습니다. VS 2008 깔고는 그 느린 속도에 기겁했는데, 이쪽은 꽤 빠르네요. [우홋홋] 근데, 2005와 2008 차이가 뭐죠? 버전 옮길때 그냥 파일 열고 버전 숫자만 바꾸면 땡이네요[...]  
46 Talk 어? ezTransXP 플러그인을 분석하다 생각난건데 [1] Hide_D 8162   2008-07-22 2008-11-22 16:38
이 플러그인에서는 전각 기호는 다른 코드로 치환해 뒀다가 다시 전각 기호로 되돌려주는데, 반각기호는 처리법이 약~간 특이합니다. 1. 원문에 ()<>{}가 없고, 번역문에 ()<>{}가 있으면, ()<>{}와 그 안의 내용을 날립니다. 2. 원문에 ()<>{}가 있고, 번역문...  
45 Talk 개행 처리 관련해서 일단 제 구상입니다 Hide_D 8149   2008-08-21 2009-01-06 01:05
랄까 어느새인가 개행처리가 아니라 텍스트 처리 필터가 되어있습니다만[......] (CmdFilter는 텍스트와 텍스트 바깥을 구분하고, 이건 텍스트 내부를 처리하는 느낌?) 우선 입력 받을 내용은 MaxLine MaxWord (MaxChar?) 개행 기호 문자열(또는 Hex) 그리고 ...