본문 바로가기

쓰기

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/cf5/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
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155445   2008-08-03 2008-12-16 00:03
329 Talk 작전명. '누덕누덕' 작전 시작 Hide_D 10674   2011-02-18 2011-02-18 00:02
AralTrans 0.2에서 시작해서 눈꼽만큼씩 고쳐나갈 생각입니다. 주 타겟 OS : Windows 7 32bit 목표 일자 : 2012년 오기 전 PS : JSCustom 프로젝트는 연기되었습니다.  
328 Talk AppLoc.exe를 거치지 않고 AppLocale 가동시키는 법! Hide_D 18687   2011-01-28 2011-01-28 01:54
환경 변수 두개를 다음과 같이 세팅합니다. set __COMPAT_LAYER=#APPLICATIONLOCALE set AppLocaleID=411 그리고 나서 원하는 프로그램을 돌리면 자동으로 AlLayer.dll이 인젝션 됩니다.  
327 Talk 폰트함수인덧 아무개 18005   2011-01-11 2011-01-11 23:38
CreateFontIndirect_Correct 누가 후킹 하나열[...........]  
326 Archive [플러그인] CustomDic 4.0.4.131 RC [5] file Hide_D 24298   2011-01-05 2011-04-24 21:07
 
325 Archive [소스] CustomDic v4 20110104 테스트버전 [3] file Hide_D 16410   2011-01-04 2011-01-05 06:00
 
324 Archive [소스] CustomDic v4 20110102 테스트버전 [1] file Hide_D 17513   2011-01-02 2011-01-03 06:08
 
323 Talk 웹 계정 아이디/비밀번호 secret Hide_D 1   2011-01-02 2011-01-02 16:21
비밀글입니다.  
322 Talk DenyWord + 정규표현식? Hide_D 17306   2010-12-18 2010-12-18 00:05
어차피 문자열을 찾는 구조였으니 그냥 Boost꺼나 C++0x의 STL에 달려있는 정규표현식 모듈 들고와서 Deny, Allow, Exact에다 정규 표현식도 합쳐볼까요?  
321 Talk ATCode에 @가 붙은 글꼴을 빼버려야겠군요 Hide_D 16792   2010-12-11 2010-12-11 16:28
질문 게시판에 백년 만년 올라오는 왜 글자가 옆으로 누워있죠? 를 막으려면 역시 @붙은 글꼴은 빼는게 제격입니다 ㅠ 대신 아래에 체크로 @ 허용 같은거 하나 만들어두고요  
320 Archive [소스, 플러그인] Cache 테스트버전 101127 file Hide_D 19949   2010-11-27 2010-11-27 04:19
 
319 Talk KiriKiri 텍스트 파싱 개선 프로젝트! Hide_D 22403   2010-10-28 2010-10-28 00:21
필요가 생겨서[!] 이제 좀 개선을 시켜볼 생각입니다. 우선 문제가 되는 곳은 text=""겠군요  
318 Talk [뻘글] 요새 프로텍터가 하도 무서워서 Hide_D 22878   2010-10-26 2010-10-26 00:15
대상 클라이언트에 최소한의 Injector만 '꽂아'두고 실제 동작은 '서버'에서 Injector와 IPC만으로 구동하는 형식은 어떨까 싶군요. Injector에서 '메모리' 입출력 관현 함수와 기본 WinAPI에 사용되는 DLL 로드(이건 위험하지 않으니까!)와 실제 WinAPI를 실...  
317 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 정도네요. 올리긴 했지만 ...  
316 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를 사용하여 작...  
» Talk ATCustom - 함수 Reference [47] Hide_D 103937   2010-07-20 2010-08-28 04:59
AralTrans의 Algorithm Plugin ATCustom의 함수 목록입니다. - 문서 상태 - 기본 함수 : 변경 중 변경 확률 보통 고급 함수 : 변경 중 변경 확률 높음 - 기본 함수 목록 - 핵심적인 기능을 가지거나 내부의 C++ 코드를 사용해야만 하는 함수의 목록입니다. 메...  
314 Talk AT 0.2에서 내부 버퍼가 4096을 넘을 수 있어야 합니다. [1] Hide_D 34245   2010-07-13 2011-03-04 05:56
ATCode인지 뭔지 내부 버퍼 길이가 4096바이트로 제한되어있어서 그보다 큰 길이가 들어올 경우 문제가 생깁니다. 길이를 제한하는 플러그인들은 모두 대용량의 텍스트도 받아올 수 있도록 처리해야할 것 같습니다.  
313 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를 사용하면 '무조건' 얼어버리는 현상...  
312 Archive [플러그인] GoogleTrans 테스트 버전 (20100620) file Hide_D 26602   2010-06-20 2010-06-20 16:00
 
311 OtherFiles [소스] Test Network + Google Translate Source - 2 file Hide_D 26517   2010-06-19 2010-06-19 09:59
 
310 OtherFiles AralTrans.exe 파일 살짝 수정했습니다. + 아랄씨 계시면 보세요 file Hide_D 28478   2010-06-07 2010-06-07 05:11