본문 바로가기

쓰기

AralTrans의 Algorithm Plugin
ATCustom의 함수 목록입니다.

- 문서 상태 -
기본 함수 : 변경 중
                변경 확률 보통

고급 함수 : 변경 중
                변경 확률 높음

- 기본 함수 목록 -
핵심적인 기능을 가지거나
내부의 C++ 코드를 사용해야만 하는 함수의 목록입니다.

메모리 훅 : ATHookAddress

현재 훅 주소 반환 : ATGetAddressHere
현재 모듈 이름 반환 : ATGetModuleNameHere

모듈 주소 : ATGetModuleAddress
메모리 읽기 : ATReadMemory
메모리 쓰기 : ATSaveMemory

메모리 할당 : ATAllocMemory
메모리 해제 : ATFreeMemory
메모리 권한 : ATProtectMemory

레지스터 읽기 : ATGetRegister
레지스터 쓰기 : ATSetRegister
플래그 읽기 : ATGetFlag
플래그 쓰기 : ATSetFlag

정수값 추출 : ATArrayToInt
실수값 추출 : ATArrayToFloat
문자열 추출 : ATArrayToString

정수값 합성 : ATIntToArray
실수값 합성 : ATFloatToArray
문자열 합성 : ATStringToArray

NOT 연산 : ATNOT
AND 연산 : ATAND
OR 연산 : ATOR
XAND 연산 : ATXAND
XOR 연산 : ATXOR

왼쪽 시프트 연산 : ATShiftLeft
오른쪽 시프트 연산 : ATShiftRight
왼쪽 회전 연산 : ATRotateLeft
오른쪽 회전 연산 : ATRotateRight

번역 : ATTranslateRaw
번역 컨텍스트 생성 : ATMakeContext (0.3)

로케일 변경 : ATConvertLocale

메시지 창 띄우기 : ATAlert
C API 부르기 : ATCallWinAPI

추가창 띄우기 : ATShowTraceWindow
추가창 출력 : ATTrace


파일 가져오기 : ATGetFile
파일 내보내기 : ATSetFile

게임 실행 경로 : ATGetGameExePath
ATData 경로 : ATGetATDataPath
아랄트랜스 경로 : ATGetAralTransPath

- 일반(고급) 함수 목록 -
기본 함수를 사용해서 구현 가능한 함수의 목록입니다.
이 함수들은 JavaScript로 구현되어있습니다.

배열 기준 단위 변경 : ATNArrToNArr

메모리에서 문자열 읽기 : ATGetStringFromMemory
메모리에서 정수 읽기 : ATGetIntFromMemory
메모리에서 실수 읽기 : ATGetFloatFromMemory

메모리로 문자열 쓰기 : ATSetStringToMemory
메모리로 정수 쓰기 : ATSetIntToMemory
메모리로 실수 쓰기 : ATSetFloatToMemory

메모리 주소 계산 : ATCalcAddress

번역 : ATTranslate

라이브러리 설정 : ATSetLibrary
분류 :
Talk
조회 수 :
103937
등록일 :
2010.07.20
19:37:16
엮인글 :
https://arallab.hided.net/37377/a7b/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/37377

Hide_D

2010.07.21
04:31:27
function ATReadMemory(ModuleName,MemoryAddress,Length);

[LowLevel 함수]

인자 설명
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
Length : 읽어올 바이트 수를 적는다.

반환 값
읽어온 메모리 값을 Byte Array로 반환한다.
실패할 경우 null을 반환합니다.

Hide_D

2010.07.21
04:33:19
function ATSaveMemory(Array,ModuleName,MemoryAddress);

[LowLevel 함수]

인자 설명
Array : 메모리로 쓸 Byte Array를 지정한다.
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.

반환 값
메모리 기록에 성공여부를 반환한다.

Hide_D

2010.07.21
04:59:22
function ATHookAddress(ModuleName,MemoryAddress,FuncName);

[LowLevel 함수]

인자 설명
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
-> 기준점 Hex, 또는 모듈 이름 지정 가능
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
FuncName : 해당 지역에 도달했을 경우 실행할 함수를 지정한다.

반환 값
후킹 지점을 잡는데 성공했는지 여부를 반환한다.

Hide_D

2010.07.21
21:04:57
function ATAllocMemory(Length);

[LowLevel 함수]

인자 설명
Length : 할당 받을 바이트 수를 지정한다

반환 값
할당된 메모리의 시작 주소를 반환한다.
실패했을 경우 null을 반환한다.

설명
내부적으로 C++의 new byte[length]; 를 사용하여 구현됩니다.

Hide_D

2010.07.22
00:01:12
function ATFreeMemory(Type,Address,Length,Option=null);

[LowLevel 함수]
(변경 가능합니다!)

인자 설명
Type : 할당된 메모리 타입을 지정합니다
0, 'delete[]' - delete(CRT)
1, 'delete' - delete[] (CRT)
2, 'free' - free (CRT)
3, 'HeapFree' - HeapFree
4, 'LocalFree' - LocalFree
5, 'GlobalFree' - GlobalFree
6, 'VirtualFree' - VirtualFree
7, 'VirtualFreeEx' - VirtualFreeEx
Address : 할당되었던 메모리의 시작 주소를 입력합니다.
Length : 메모리의 길이를 지정합니다. 대부분 값을 지정하지 않아도 됩니다.
Option : 추가로 지정할 인자를 지정합니다. VirtualFree의 경우 dwFreeType에 해당합니다.

반환값
해제의 성공 여부를 반환합니다.

설명
할당된 메모리를 해제하는 데 각각의 할당 함수에 맞게 해제를 해줘야 하며,
프로그램 내부에 선언된 메모리의 경우 원래의 할당 함수가 무엇인지 알기 어렵기 때문에
굳이 메모리를 반환하려 하는 것보다 프로세스 종료시 커널이 알아서 정리하도록 하는 것이
좀 더 나은 방법일 수 있습니다.

Hide_D

2010.07.22
00:14:27
function ATProtectMemory(Address,Length,Protect);

[LowLevel 함수]

인자 설명
Address : 메모리의 시작 주소를 입력합니다.
Length : 메모리의 길이를 지정합니다.
NewProtect : 새로운 프로텍트 모드를 지정합니다.

반환값 설명
변경에 성공했을 경우 기존 프로텍트 모드를 반환하며
실패했을 경우 null을 반환합니다.

설명
이 함수는 VirtualProtect 함수
http://msdn.microsoft.com/en-us/library/aa366898%28VS.85%29.aspx
의 래핑 버전이며, 읽기 전용으로 설정된 구간에 접근할 경우 이 함수를 통해
쓰기 가능으로 변경한 후 기록해야합니다.
추가로 작업 후 원래 ProtectMode로 변경이 필요할 수 있습니다.

Hide_D

2010.07.22
00:22:12
function ATGetRegister(Register);

[LowLevel 함수]

인자 설명
Register : 가져올 레지스터를 정합니다.
0, 'EAX' : EAX
1, 'EBX' : EBX
2, 'ECX' : ECX
3, 'EDX', : EDX
4. 'ESI'  : ESI
5, 'EDI' : EDI
6, 'ESP' : ESP
7, 'EBP' : EBP
8, 'EFL' : EFL

반환값
해당 레지스터의 값을 받아옵니다.
만약 실패했다면 null을 반환합니다.

Hide_D

2010.07.22
00:24:50
function ATSetRegister(Value,Register);

[LowLevel 함수]

인자 설명

Value : 레지스터에 저장할 값을 정수로 지정합니다.
Register : 기록할 레지스터를 정합니다.
0, 'EAX' - EAX
1, 'EBX' - EBX
2, 'ECX' - ECX
3, 'EDX' - EDX
4. 'ESI'  - ESI
5, 'EDI' - EDI
6, 'ESP' - ESP
7, 'EDI' - EDI
8, 'ESP' - ESP
9, 'EBP' - EBP

반환값
성공 여부를 반환합니다.

Hide_D

2010.07.22
00:27:17
function ATGetFlag(Flag);

[LowLevel 함수]

인자 설명
Flag : 가져올 플래그를 지정합니다.
0, 'C', 'CF' : Carry Flag
1, 'P', 'PF' : Parity Flag
2, 'A', 'AF' : Auxiliary Carry Flag
3, 'Z', 'ZF' : Zero Flag
4, 'S', 'SF' : Sign Flag
5, 'O', 'OF' : Overflow Flag

반환값
Flag의 true, false를 반환합니다.

Hide_D

2010.07.22
00:28:11
function ATSetFlag(Value,Flag);

[LowLevel 함수]

인자 설명
Flag : 저장할 플래그를 지정합니다.
0, 'C', 'CF' : Carry Flag
1, 'P', 'PF' : Parity Flag
2, 'A', 'AF' : Auxiliary Carry Flag
3, 'Z', 'ZF' : Zero Flag
4, 'S', 'SF' : Sign Flag
5, 'O', 'OF' : Overflow Flag
Value : Flag의 값을 true, false로 지정합니다.

반환값
성공 여부를 반환합니다.

Hide_D

2010.07.22
00:30:57
function ATArrayToInt(Array,Length=4,Signed=true);

[Utility 함수]

인자 설명
Array : ATReadMemory를 통해 받아온 ByteArray를 지정합니다.
Signed : 해당 값이 부호가 있는지 여부를 지정합니다.
Length : 해당 값의 길이를 지정합니다.

반환값
해당 값을 32비트 부호 있는(또는 부호 없는) 정수로 변환한 값을 반환합니다.

설명
지정한 Array를 Little Endian으로 작성된 수가 담긴 C의 배열로 가정하고
수를 읽어옵니다.

Hide_D

2010.07.22
00:38:30
function ATArrayToFloat(Array,Length=4);

[Utility 함수]

인자 설명
Array : ATReadMemory를 통해 받아온 ByteArray를 지정합니다.
Length : 수의 길이를 입력합니다. 4와 8이 가능합니다.

반환값
해당 값을 64비트 실수로 변환한 값을 반환합니다.

반환값
지정한 Array를 부동소수점이 있는 C의 포인터로 가정하고
수를 읽어옵니다.

Hide_D

2010.07.22
00:50:50
function ATArrayToString(Array,Length=-1,Locale='Shift-JIS',Terminator='00' 또는 ='00 00');

[Utility 함수]

인자 설명
Array : ATReadMemory를 통해 받아온 ByteArray를 지정합니다.
Length : 읽어올 [글자의 길이]를 입력받습니다. 바이트 수가 아닙니다. 문자열 종료시까지 읽어올경우
             0보다 작은값을 입력합니다.
Locale : 언어로케일을 숫자, 또는 문자열로 지정합니다.
Terminator : 문자열의 종결자를 지정합니다.
                   Hex 문자열로 표기합니다. '00' <- 1바이트 0x00, '00 00' <- 바이트 0x0000

반환값
해당 값을 UTF-8 문자열로 변환한 값을 반환합니다.

설명
ByteArray를 C, C++의 문자열로 해석하고 읽어옵니다.
변환중 각각 '\0' L'\0'에 해당하는 값을 만날 경우, 길이가 남아있더라도 문자열이 종료된 것으로
판단하고 반환합니다.
Terminator가 없을 경우 현재 길이의 끝까지를 문자열로 인식합니다.

Hide_D

2010.07.22
01:15:33
function ATIntToArray(Value,Length=4);

[Utility 함수]

인자 설명
Value : 기록할 값을 입력합니다.
Length : 바이트 수를 입력합니다.

반환값
해당 정수를 변환한 Length 만큼의 길이를 갖는 Byte Array를 반환합니다.

Hide_D

2010.07.22
01:16:12
function ATFloatToArray(Value,Length=4);

[Utility 함수]

인자 설명
Value : 기록할 값을 입력합니다.
Length : 바이트 수를 입력합니다 4또는 8을 지정할 수 있습니다.

반 환값
해당 실수 값을 Length 길이의 Byte Array로 반환합니다.

Hide_D

2010.07.22
01:19:53
function ATStringToArray(String,Locale='Shift-JIS',Length=-1,Terminator='00' 또는 '00 00');

[HighLevel Utility 함수]

인자 설명
String : 기록할 문자열을 지정합니다.
Locale : 언어로케일을 숫자, 또는 문자열로 지정합니다.
Length : 기록할 [글자 수]를 지정합니다. 바이트 수가 아닙니다.
Terminator : 문자열의 종결자를 지정합니다.
                   Hex 문자열로 표기합니다. '00' <- 1바이트 0x00, '00 00' <- 바이트 0x0000

반환값
해당 문자열을 Byte Array로 반환합니다.

설명
UTF-8 문자열을 Byte Array로 변환합니다.

Hide_D

2010.07.22
01:22:38
function ATNOT(Value,Length=4);
function ATXOR(Value1,Value2,Length=4);
function ATXAND(Value1,Value2,Length=4);
function ATOR(Value1,Value2,Length=4);
function ATAND(Value1,Value2,Length=4);

[Utility 함수]

인자 설명
Value1, Value2 : 값을 연산할 정수 대상입니다.
Length : 바이트 수를 지정합니다. 바이트 수 범위 내에 있지 않을 경우 모두 0으로 처리됩니다.

반환값
계산된 값을 정수로 반환합니다.

설명
C의 비트 기본 연산을 수행합니다.

Hide_D

2010.07.22
01:24:26
function ATShiftLeft(Value,Bit,Length=4);
function ATShiftRight(Value,Bit,Length=4);
function ATRotateLeft(Value,Bit,Length=4);
function ATRotateRight(Value,Bit,Length=4);

[Utility 함수]

인자 설명
Value : 값열 연산할 대상 정수입니다.
Bit : 회전, 이동 시킬 비트 수입니다.
Lenght : 정수의 기준 바이트 수를 지정합니다.

반환값
계산된 값을 정수로 반환합니다.

설명
C의 비트 기본 연산을 수행합니다.

Hide_D

2010.07.22
01:42:11
function ATCallWinAPI(DLLName,FuncName,...);

[Utility 함수]

인자 설명
DLLName : 함수가 담긴 DLL의 이름입니다. 로드 되지 않았을 경우 자동으로 LoadLibrary를 수행합니다.
FuncName : 실행하고자 하는 함수의 이름입니다.
... : 실제 사용할 인자 목록입니다.
      정수, ByteArray가 쓰일 수 있으며
      정수는 값으로, ByteArray는 C에서 주소값(포인터)를 사용하여 넘어갑니다.
      만약 인자로 실수가 필요하다면 Hex를 통해 직접 보내야합니다.

반환값
함수의 반환값을 32비트 정수로 반환합니다.
만약 함수를 부르는데 실패했다면 null을 반환합니다.

설명
WinAPI또는 기타 C의 함수들을 부를 수 있습니다.

ex:
ATCallWinAPI("Kernel32.dll","MultiByteToWideChar",932,0,jpAnsi,-1,jpUnicode,300);

Hide_D

2010.07.22
02:30:16
function ATTranslate(String,InLocale='Shift-JIS',OutLocale='Shift-JIS');  //0.2
function ATTranslate(String,ContextName,InLocale='Shift-JIS',OutLocale='Shift-JIS'); //0.3

[High Level 함수]

인자 설명
ByteArray : 번역할 ByteArray 문자열(MBCS)을 지정한다.
String : 번역할 UTF-8 문자열을 지정한다.
ContextName : 사용할 번역 컨텍스트의 이름을 지정한다.
InLocale : 번역 파이프라인 원문에 사용할 언어 로케일을 지정한다.
OutLocale : 번역 파이프라인 번역문에 사용할 언어 로케일을 지정한다.

반환 값
번역 완료된 UTF-8 문자열을 반환한다.

Hide_D

2010.07.22
03:03:14
지원할 코드 목록 (대소문자 구분 없음)

932 = 'Shift_JIS' = 'Shift-JIS' = 'CP932' = 'CP-932'
949 = 'CP949' = 'CP-949' = 'ks_c_5601_1987' = 'MS949'
65001 = 'UTF-8' = 'UTF8' = 'CP_UTF8'
1200 = 'UTF16' = 'UTF-16' = 'UTF16LE' = 'UTF16-LE'
1201 = 'UTF16BE' = 'UTF16-BE'
12000 = 'UTF32' = 'UTF-32' = 'UTF32LE' = 'UTF32-LE'
12001 = 'UTF32BE' = 'UTF32-BE'

이외의 숫자 코드는
Windows 내부에서 그 코드를 지원 할 경우 동작한다.

Hide_D

2010.07.22
12:41:22
class Integer : public Number 에서
Integer의 Value는 int64_t를 쓰고 있다.

그리고
class Number : public Primitive 에서
기본 수의 Value로 double을 쓰고 있다.

그러므로 모든 '수'의 기본크기는 8바이트이다!
따라서 모든 '수' 관련 변환 함수에서
정수 : 1,2,4,8
실수 : 4,8
을 지정할 수 있어야 한다.

Hide_D

2010.07.22
12:58:22
function ATGetStringFromMemory(ModuleName,Address,Locale='Shift-JIS',MaxLength=-1,Terminator='00' 또는 '00 00');

[HighLevel 함수]

인자 설명
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
Locale : 원 메모리의 언어 로케일을 적는다.
MaxLength : 읽어올 최대 바이트 수를 적는다.
Terminator : 문자열의 종결자를 지정한다.
                   Hex를 문자열로 표기한다. '00' <- 1바이트 0x00, '00 00' <- 바이트 0x0000

반환 값
변환한 UTF-8문자열을 반환합니다.

설명
메모리의 문자열을 JavaScript의 UTF-8문자열로 가져옵니다.
ATReadMemory 함수와 ATArrayToString 함수의 조합으로 볼 수 있습니다.

Hide_D

2010.07.22
13:12:55
function AT1ArrTo2Arr(Array);
function AT2ArrTo1Arr(Array);
function AT1ArrTo4Arr(Array);
function AT4ArrTo1Arr(Array);
function ATNArrToNArr(Array,InN,OutN);

[HighLevel Utility 함수]

인자 설명
Array : 변환할 배열을 지정합니다.
InN : 입력되는 배열의 기준 단위값을 입력합니다.
OutN : 출력될 배열의 기준 단위값을 입력합니다.

반환 값
해당 크기 단위의 Array로 반환합니다.

설명
편의를 위해 기준 단위를 1Byte, 2Byte, 4Byte로 변경합니다.
그러나 LowLevel 함수는 무조건 Byte Array(1Byte)만 사용해야한다는 점을 주의하십시오.

Hide_D

2010.07.22
13:44:18
function ATSetStringToMemory(String,ModuleName,Address,Locale='Shift-JIS',MaxLength=-1,Terminator='00' 또는 '00 00');

[HighLevel 함수]

인자 설명
String : 기록할 UTF-8 문자열을 지정한다.
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
Locale : 메모리로 기록할 언어 로케일을 적는다.
MaxLength : 기록할 최대 바이트 수를 적는다.
Terminator : 문자열의 종결자를 지정한다.
                   Hex를 문자열로 표기한다. '00' <- 1바이트 0x00, '00 00' <- 바이트 0x0000

반환값
성공 여부를 반환합니다.

설명
JavaScript의 UTF-8문자열을 메모리에 원하는 언어셋으로 기록합니다.
ATSaveMemory 함수와 ATStringToArray 함수의 조합으로 볼 수 있습니다.

Hide_D

2010.07.22
22:15:20
function ATAlert(Content,Title,Type=0);

[Utility 함수]

인자 설명
Content : 메시지 창의 본문 내용입니다.
Title : 메시지 창의 제목 내용입니다.
Type : 메시지 창의 특성입니다.

반환
::MessageBoxW의 실행 결과를 반환합니다.

설명
WinAPI의 ::MessageBoxW 의 Wrapping 함수입니다.
실행시 메시지 창이 뜨게 됩니다.
MessageBoxW의 자세한 사항은
http://msdn.microsoft.com/en-us/library/ms645505%28VS.85%29.aspx
을 참고해주세요.

Hide_D

2010.07.23
10:35:35
function ATGetIntFromMemory(ModuleName,Address,Length=4,Signed=true);

[HighLevel 함수]

인자 설명
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
Length : 읽어올 바이트 수를 적는다. 1, 2, 4을 지정할 수 있다.
Signed : 해당 값이 부호가 있는지 여부를 지정한다.

반환 값
해당 메모리 주소를 64bit 정수값으로 변환한 값을 반환한다.

설명
ATReadMemory와 ATArrayToInt의 조합버전

Hide_D

2010.07.23
10:38:34
function ATSetIntToMemory(Value,ModuleName,Address,Length=4);

[HighLevel 함수]

인자 설명
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
Length : 기록할 바이트 수를 적는다. 1, 2, 4을 지정할 수 있다.

반환 값
기록 여부를 반환한다.

설명
ATWriteMemory와 ATIntToArray의 조합입니다.

Hide_D

2010.07.23
10:49:31
function ATGetFloatFromMemory(ModuleName,Address,Length=4);

[HightLevel 함수]

인자 설명
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
Length : 읽어올 바이트 수를 적는다. 4, 8을 지정할 수 있다.

반환 값
해당 메모리 주소를 double float으로 변환한 값을 반환한다.

설명
ATReadMemory와 ATArrayToFloat의 조합버전

Hide_D

2010.07.23
10:50:24
function ATSetFloatToMemory(Value,ModuleName,Address,Length=4);

[HighLevel 함수]

인자 설명
Module Name : 모듈의 이름을 지정한다 NULL로 줄 경우 절대 경로로 동작한다.
Address : 모듈의 시작점을 기반으로 한 상대 주소를 지정한다.
Length : 기록할 바이트 수를 적는다. 4, 8을 지정할 수 있다.

반환 값
기록 여부를 반환한다.

설명
ATWriteMemory와 ATFloatToArray의 조합버전

Hide_D

2010.07.24
03:52:49
function ATCalcAddress(AddressString);

[HighLevel 함수]

인자 설명
AddressString : 계산할 메모리 주소를 입력합니다.
                       값 기호([]), 레지스터이름(EAX ... ESP), 사칙연산(+,-,*,/,%) 을 쓸 수 있습니다.

반환 값
계산된 메모리 주소를 반환합니다.

설명
어셈블에서 흔히 사용하는 메모리 계산 방식대로 계산해주는 함수입니다.
ex : [[[EDX]+0x20]+0x100]-0x20

ATGetRegister와 ATGetIntFromMemory의 조합으로 이루어져 있습니다.

Hide_D

2010.07.24
05:22:58
function ATGetModuleAddress(ModuleName);

[LowLevel 함수]

인자 설명
ModuleName : 모듈의 이름을 지정한다.

반환 값
해당 모듈의 절대 주소를 반환합니다.
만약 오류가 발생할경우 0을 반환합니다.

Hide_D

2010.07.25
00:04:36
function ATShowTraceWindow(Show=true);

[Utility 함수]

인자 설명
Show : 추가 창의 출력 유무를 지정한다.

반환값
현재 Window가 떠 있는지의 여부를 반환한다.

설명
ATTrace 함수를 출력해주는 간이 창을 띄운다.


구현목록에서 제외되었습니다.

Hide_D

2010.07.25
00:06:00
function ATTrace(TraceData,ShowHex=false);

[Utility 함수]

인자 설명
TraceData : TraceWindow에 출력할 대상을 지정한다.
ShowHex : Hex로 출력할 것인지 여부를 지정한다.

반환값
출력이 되었는지 여부를 반환한다.
TraceWindow가 떠있지 않을 경우 무조건 false가 반환된다.


구현 목록에서 일단 제외되었습니다.

Hide_D

2010.07.26
04:10:23
function ATGetAddressHere();

[Utility 함수]

반환값
현재 후킹되어 Event가 발생한 Address의 절대 경로를 반환합니다.

Hide_D

2010.07.29
11:31:09
function ATGetModuleNameHere();

[Utility 함수]

반환값
현재 후킹되어 Event가 발생한 경로가 어느 모듈인지의 문자열을 반환합니다.

Hide_D

2010.08.02
14:11:10
function ATGetFile(filepath);

[Utility 함수]

반환값
파일 경로의 모든 내용을 읽어서 Byte Array로 반환합니다.

Hide_D

2010.08.02
14:12:15
function ATSetFile(array,filepath);

[Utility 함수]

반환값
성공 여부를 반환합니다.

설명
Byte Array의 모든 내용을 저장합니다.

Hide_D

2010.08.03
12:04:55
function ATGetGameExePath();
function ATGetATDataPath();
function ATGetAralTransPath();

[Utility 함수]

반환값
GameExe : 실행파일의 경로를 반환합니다.(경로\실행파일.exe)
ATData : ATData 폴더의 경로를 반환합니다. 없는 경우 ATData를 생성합니다.(경로\ATData\)
AralTrans : AralTrans가 실행중인 폴더의 경로를 반환합니다.(아랄트랜스 경로\)

Hide_D

2010.08.14
14:50:56
function ATTranslateRaw(Array); //0.2
function ATTranslateRaw(Array,ContextName); //0.3

[기본 함수]

인자 설명
Value : 번역할 ByteArray 문자열(MBCS)을 지정한다.
ContextName : 사용할 번역 컨텍스트의 이름을 지정한다.

반환 값
번역 완료된 ByteArray를 반환한다.

Hide_D

2010.08.14
14:54:42
function ATConvertLocale(Array,Locale);

[기본 함수]

인자 설명
Value : 변환할 ByteArray을 입력한다. 마지막이 '\0'이어도 되고, 아니어도 된다.
Locale : 변환할 언어 로케일을 지정한다.

반환 값
변환 완료된 ByteArray를 반환한다.

Hide_D

2010.08.18
06:38:18
function ATMakeContext(ContextName); //0.3

[기본 함수]

인자 설명
ContextName : 사용할 컨텍스트의 이름을 입력합니다.

반환 값
번역 컨텍스트를 만드는데 성공했는지 여부를 반환합니다.

설명
0.3에서는 번역을 하려면 번역 Context를 지정해서 번역해야 합니다.
이 번역 Context는 이 함수를 통해 먼저 선언해야만 아랄트랜스 컨테이너 내부에 활성화됩니다.

Hide_D

2010.08.18
06:43:08
위의 모든 함수는
명확히 실패의 경우가 지정되지 않은 경우
실패시 null을 반환합니다!

Hide_D

2010.08.21
03:07:39
JavaScript에서 Integer는 52bit입니다.
따라서 내부에서 Integer 관련 함수의 Length는 1,2,4 중 하나가 되어야합니다.

js 파일 내부에서 연산시 32bit는 문제없으나 64bit를 다루려고 할때 문제가 발생할 수 있습니다.

Hide_D

2010.08.24
02:37:15
Byte Array는 JavaScript의 일반적인 Array와 동일하므로

concat (배열 이어붙이기)
slice (배열 자르기)
와 같은 함수들도 같이 사용 가능합니다.

참고 : http://www.w3schools.com/js/js_obj_array.asp

Hide_D

2010.08.26
17:50:26
function ATSetLibrary(Revision);

[고급 함수]

인자 설명
Revision : 사용할 ATCustom 함수 라이브러리의 리비전을 지정합니다.

반환 값
설정 되었는지의 여부를 반환합니다.
만약 false가 반환될 경우 최신버전으로 작동합니다.

설명
ATCustom의 라이브러리가 바뀔 것을 대비에 사용할 라이브러리의 버전을 지정해주는 함수입니다.
이 함수를 지정해두지 않을 경우 함수가 Rev#에서 기본 함수로 매핑되지 않으니 무조건 사용해야 합니다

Hide_D

2010.08.28
04:59:41
이제 이 문서는 더 이상 갱신되지 않습니다.
이후부터는
http://wiki.aralgood.com/index.php/JSCustom/FunctionReference
에 작성됩니다.
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155441   2008-08-03 2008-12-16 00:03
44 Talk DumpText는 아직 개선이 좀 필요한듯; [3] Hide_D 8111   2008-08-03 2009-01-06 01:00
여러개를 켤 수가 없다는 단점이 있네요[...] 그나저나 질문, 헤더 파일에서 extern으로 선언하면 그 프로그램 전체에서 공유되는건가요? 그렇다면, 창은 하나만 띄우고 플러그인 로드될때마다 번호를 매겨서 옵션을 먹여야 하려나요..  
43 Talk cmd로 리버ex 테스트 [2] file 앙마vv 8011   2008-07-25 2009-01-06 01:27
 
42 Talk 플러그인을 만들다가 '또다시' 엄청난 실수를 저질렀다는걸 깨달았습니다. [2] Hide_D 7929   2008-08-12 2009-01-06 01:01
이쪽은 프로그래밍이라보가는 구상과 관련된 문제네요 ㅠ_ㅠ 현재 제가 손대고 있는 플러그인이 사용자사전 사용자대본 개행문자처리 컨트롤문자처리 인데, 두개씩 묶여있는 구조죠. 그런데... 사용자대본 -> 문장단위처리 사용자사전 -> 단어단위처리 개행문...  
41 Talk 0.3에서 추가할것 Hide_D 7908   2008-08-03 2009-01-06 01:00
까먹을까봐 정리 사용자 사전계 1. 사용자사전 유/무 2. 범용사용자사전 유/무 3. 사용자 정의한 주소의 파일 열기(취소) 4. 탭처리 5. 검색 알고리즘 강화(보류) ezTransXP 강화계 1. 번역후 괄호 처리(다이얼로그에 추가)(보류) 2. 사용자 사전과 완벽히 분...  
40 Talk whoami님 Util.h의 옵션 파서가 [4] Hide_D 7908   2008-08-10 2008-08-10 15:13
문자열 을 지원하나요? 아니... 으음 c:documents and settindsuser내 문서Game,A루트(미완성).txt 라는 문자열을 파서로 받을 수 있나요?  
39 Talk 리얼라이브 세이브에 대해서... [4] 나는누구인감? 7894   2008-08-01 2009-01-06 01:00
오늘 학교에서 하라는 공부는 안하고 곰곰히 생각을 해봤습니다. 세이브 할 경우 현재 위치의 이미지 정보 읽어들임 → 현재 위치의 대사 정보 읽어들임 → 세이브 파일에 저장 로드 할 경우 세이브 파일의 이미지 정보 읽어들임 → 세이브 파일의 대사 정보 읽어...  
38 Talk DumpText를 만들고 있는데... [2] Hide_D 7892   2008-08-02 2008-08-02 12:04
밖에서 모달리스 다이얼로그 안으로 데이터를 넣어주는 간단한 방법 없나요 =ㅅ=; 저 방법이 생각안나서 지금 해보려고 하는게, 실시간으로 바깥의 isTextFilled 를 체크해서 true인 경우만 밖의 텍스트를 가져온 다음에 isTextFilled를 false로 만드는 방법밖...  
37 Talk Hide_D군님, CCustomDic2 의 문제점을 알 것 같습니다.. [1] whoami 7811   2008-08-12 2008-08-12 22:41
저번에 (5) 문제.. 기억하시나요? 아마도 이것 때문인 것 같습니다. void CCustomDic2::PreCustomDic(LPSTR Dest, LPCSTR Source) { // ... 전략 for(int head=0;head<SourceLen;head++) { for(int tail=SourceLen-1;tail>head;tail--) { // ... 중략 ... //2...  
36 Talk 문자열 -> Hex 변환이 제대로 안되네요. [7] Hide_D 7561   2008-08-02 2009-01-06 01:00
LPSTR ConvertHex(LPCSTR source){ size_t Len=strlen(source); char Temp[2048]=""; BYTE szBuf[3] = { '', }; int j=0; for(size_t i=0;i<Len;i++){ szBuf[0]=(BYTE) source[i]; szBuf[1]=(BYTE) source[i+1]; if(szBuf[0]<0x80){ //1바이트 코드라면 j += ...  
35 Talk 퓩퓩... 퓩퓩... oTL whoami 7557   2008-08-02 2009-01-06 01:35
원인을 알아냈습니다. 하지만 이건.. 참 난감하군요. 이 문제는 RLCmd의 문제가 아닙니다. 이 문제는 SOW방식의 문제도 아닙니다. 이 문제는 한글 완성형 코드의 문제입니다... oTL 예전에 KoFilter 를 한참 만들고 있을 때... 이 이야기가 나온 적이 있었습니...  
34 Talk AralTrans, ATCTNR 111112 버전 SVN에 추가. [1] whoami 5260   2011-11-12 2012-06-17 14:29
ATCTNR 의 SVN 소스가 후킹모드 2로 되어있었는데.. 아마 예전에 지나가다정착한이A 님이 발안해서 테스트하던 후킹모드 2 판의 소스가 올라가있었던 듯 합니다. 뭐.. 실제 머리싸매고 고민하다 보니 의외로 돌려놓기가 어렵지 않아서 후킹모드 1로 돌려놓고 ...  
33 Talk XP3Dumper! [1] Hide_D 5000   2011-12-12 2011-12-24 02:57
기리기리랑 합치면 좀 재밌는게 나올 것 같아서 뜯어보고 있습니다. 결과물은 아마 내년(ㅋㅋㅋ)에 나올것 같네요  
32 Talk FrigateBird님의 ATCode 20111003버전에 대하여.. [9] whoami 4957   2011-11-02 2011-12-10 16:16
일단 FrigateBird(잘 알려진 피시로 호칭)님의 ATCode 20111003 (줄여서 1003버전) 을 한번 훑어보았는데요, 1003 버전의 주된 변경점은 Siglus 엔진에 대한 지원이 주를 이루고 있습니다. 물론 기존 ATCode 의 버그를 잡은 것도 있지만 마이너하니 넘어갑니다...  
31 Talk AralTrans 20120214 버전 변경점 [6] whoami 4193   2012-02-14 2012-06-17 14:29
아랄트랜스 20120214 버전에서의 변경점 1. ATCTNR.dll 버그 수정 - 모듈 정보에서 이미지 파일 크기가 부정확할 경우 Access Violation 에러가 나는 문제 해결. Rewrite (Key) 에서 작동 확인. 다른 게임은 미확인이나 피시님의 ATCTNR 패치가 거의 동일하기 ...  
30 Talk SMSTR 의 부가옵션에 대한 토론.. [4] whoami 3800   2012-02-14 2012-07-12 19:27
ATCode 테스트버전 120207 의 댓글이 너무 복잡하게 꼬여서 이쪽으로 뺍니다. 현재 120207 에서 SMSTR 은 기본적으로 피시님 버전의 OVERWRITE(IGNORE,BUFCHANGE) 모드로만 돌아가도록 만들어져 있습니다. 그런데 피시님께서 부가기능이 필요하시다고 하셨는데...  
29 Talk 이지트랜스 플러그인 Ehnd 제작자입니다. [6] kiereh 3436   2014-02-27 2014-03-01 17:59
에그헤드의 필터 기능을 타 써드파티 프로그램에서도 사용할 수 있게 하자는 발상으로 이지트랜스 플러그인인 Ehnd를 제작하게 되었습니다. 플러그인이라고 하는 이유는 Proxy DLL 기법을 이용해 구현하였고 (Ehnd의 DLL 이름은 J2KEngine.dll, 기존 이지트랜...  
28 Talk 아랄트랜스 0.2 소스 bitbucket 으로 올려놨습니다. [7] whoami 2832   2014-02-18 2018-12-27 18:27
구글코드 SVN 에 무슨 일이 생겼는지 몰라서 일단 백업삼아 bitbucket 에 repositiry 하나 잡고 소스를 올렸습니다. 아무래도 옛날 SVN과 인터페이스가 비슷해서 (TortoiseHg) 편한 Mercurial 로 세팅했고.. 공개로 일단 해놓기는 했는데.. 어차피 개발진이 몇...  
27 Talk 아랄트랜스 0.2 구글코드 svn 밴당했나요? whoami 2537   2014-02-15 2014-02-15 22:54
오랫만입니다... ^^ 새해 복 많이 받으세요.. 이미 늦었나. 아래 Wales 님이 코드수정을 몇 개 하신 것을 보고 오랫만에 svn 업데이트를 하려고 하니 에러가 뜨더군요. 그래서 구글코드 들어가 보니 프로젝트가 사라졌네요? 동일한 이름의 프로젝트를 만들려고...  
26 Talk ATCode 새로운 기능 추가. [5] EroGame 2518   2012-04-01 2012-04-03 19:19
제가 시간만 된다면 약간의 데모스럽게 소스라도 올려드리는데.. 좀 여의치 않군요. 일단 생각한 방안입니다. 예전부터 필요한 기능이라 생각했는데 이래저래 고민 끝에 해결방안이 나왔습니다. 현재 ATCode의 후킹 방식은 한 함수 내에 후킹 지점부터 리턴 포...  
25 Talk 스마트와 조금 다른 엔진의 처리...(알고보니 유리스엔진) [3] EroGame 1907   2012-05-30 2012-06-09 23:37
예전에 그 아랄과 최악의 상성으로 불리던 처리 방식이 KLEIN 사의 青空と雲と彼女の恋 여기서도 사용되네요. 그냥 포기할까 하다가... 스마트 방식과는 별개로 처리 방식을 하나 만들어야 될것 같습니다. (아래와 같은 처리를 한걸 여럿 보아왔기 때문에.. 스...