코드 파인딩 프로젝트 630
[240726][まどそふと] セレクトオブリージュ
https://www.youtube.com/watch?v=a2vF1yN7lF8
파인더의 한 마디:
마도소프트의 신작입니다.
Artemis 엔진이 64bit 기반 EXE로 바뀐 이후 AralTrans나 TwoControl로 후킹이 불가능했었습니다.
이번에 ChatGPT의 C++ 코딩 도움을 받아서 이번 7/20~7/26의 1주일 동안 64bit 게임과 AralTrans를 중계 후킹하는 프로그램인 (가칭) AralBridge를 만들었습니다.
아직 베타 버전이라 바로가기 딸깍으로 적용은 못 하지만 어쨌든 이제 64 bit 게임도 후킹 된다는 것ㅇ.ㅇ
적용방법 대략 아래와 같습니다. (Beta v240726 기준)
게임 실행파일과 같은 폴더에 3파일(AralInjector64.exe, AralHookDLL64.dll, AralBridge32.exe)이 같이 있게 압축을 푼다, ATdata.7z도 기존과 동일하게 푼다.
AralBridge32.exe를 키고 아래 ATcode로 후킹하고 Execution Type으로 바로가기를 만든 후 Inject 버튼을 누른다.
이후에 실행 할 때는 AralBridge32.exe를 킬때 바로가기로 켜서 AralTrans 설정은 안 해도 된다.
Inject 버튼을 눌러서 나온 창에서 AralTrans 후킹 할 때 처럼 게임 실행파일에 Inject 한다.
Export/Import Hooks 버튼을 누르고 아래의 (가칭) AralHookDLL64.dll 코드를 붙여넣고 Apply 버튼을 누르면 끝.
(AralHookDLL64.dll에 Minhook 라이브러리를 수정해서 포함.)
.
.
.
AralBridge (Beta v240815) 버전과 All in One 압축 파일을 추가하여 딸깍 적용으로 실행하게 만들었습니다.
AralBridge32 기동시 AralTrans가 자동으로 적용되게 하였습니다. (AralTrans 바로가기 필요 없음)
ini 파일에 모든 설정을 몰아넣어서 해당 설정을 이용해 딸깍 적용이 되게 만들었습니다.
관리자 권한 문제가 생기지 않게 Auto 모드에서 관련 프로그램들을 AralBridge32와 동일한 권한으로 실행하게 강제하여 비관리자 권한으로 실행해도 문제 없게 하였으며, 추가적으로 Auto 모드가 아니어도 각 프로그램 간에 관리자 권한 유무 차이에 상관없이 IPC 교신이 정상적으로 작동하게 하였습니다.
AralTrans나 ezTrans가 레지스트리에 등록되어 있지 않으면 경로를 지정하는 창을 띄우고 유효한 경로이면 레지스트리에 저장하게 하였습니다.
기존의 32bit 프로그램용으로도 딸깍 적용이 되게 설계를 추가했습니다.
로그 스레드를 분리하여 많은 로그를 쓸 때(백로그 등) 렉이 안 걸리게 수정하였습니다.
그 외에 잡다하게 기능 추가 및 수정하였습니다. (자세한 내용은 동봉된 README.md 참고.)
.
.
.
AralBridge (Beta v240824)를 이용하여 ATCode.dll 180603버전 업데이트를 자동화하였습니다.
저번에 64bit 엔진이라 포기했던 [221125][まどそふと] ハミダシクリエイティブ凸도 AralBridge로 작업하여 동일한 방법으로 번역되게 하였습니다.
https://capita.tistory.com/entry/코드-파인딩-프로젝트-571
2024년 07월 21일 PM 03시 52분 : 코드글을 비공개로 게시.
2024년 07월 26일 PM 07시 29분 : 본판 코드를 게시.
2024년 07월 26일 PM 08시 25분 : script.7z 수정.
줄 바꿈 창 나감 문제 일부 해결 수정 스크립트 파일 수정.
2024년 07월 26일 PM 08시 30분 : Filtercode, ATdata.7z 수정.
FixLine 필터와 FixLine.dat를 추가 하여 루비 문자 처리.
2024년 07월 26일 PM 09시 32분 : script.7z 수정.
줄 바꿈 창 나감 문제 일부 해결 수정 스크립트 파일 수정.
2024년 07월 27일 AM 12시 15분 : AralBridge (Beta v240726).7z 수정.
Minhook 라이브러리 라이센스 고지 파일 추가.
2024년 07월 28일 AM 02시 23분 : pc.7z 수정.
일본어 원문이 아닌 수정된 이름 이미지 한글화 파일로 교체.
2024년 08월15일 AM 02시 24분 : AralBridge (Beta v240815) 추가 및 All in One 파일 추가.
2024년 08월26일 PM 05시 19분 : AralBridge (Beta v240824)를 이용하여 ATCode.dll 180603버전 업데이트를 자동화
코드글 내용을 정리하고 용어 통일.
2024년 09월 01일 AM 06시 58분 : AralBridge (Beta v240901)로 업데이트.
2024년 10월 19일 AM 01시 25분 : AralBridge (Beta v241015)로 업데이트.
성능 개선 및 AralHookDLL64.dll 코드 형식 수정에 따른 일관성 유지.
메모:
64bit 기반 Artemis 엔진.
0x000000CC82F RDX UTF-8 PTRCHEAT 48 8B 89 A0 00 00 00 48 8B 01 4C 8D 44 24 30 48 8B D6 아래 CALL
0x000000D11E1 RDX UTF-8 PTRCHEAT 48 8B D7 48 83 7F 18 10 72 03 48 8B 17 48 8B 01 아래 CALL
스크립트 줄바꿈 제거 (길어서 접음.)
{→##
}→%%
"→@@
##@@rt2@@%%,\n([ \t]*)%%,\n
→
%#@%#@\n\1%%,\n
^([ \t]*)##@@rt2@@%%,\n
→
##@@txruby@@, *text=@@(.+)@@%%,\n([ \t]*)@@(.+)@@,\n([ \t]*)##@@txruby@@%%,\n
→
@@\3(ruby\1)@@,\n
@@(.+)@@,\n([ \t]*)@@(.+)@@,\n([ \t]*)%#@%#@\n
→
@@\1\3@@,\n\4%#@%#@\n
x5번 넘게 반복
^([ \t]*)##@@rt2@@%%,\n
→
%#@%#@→{"rt2"},
##→{
%%→}
@@→"
※주의. 최신 아랄을 쓰지 않다가 발생한 문제는 책임지지 않습니다ㅇ.ㅇ
(Artemis 엔진으로 ... 루비 전후로 번역률이 약간 떨어질 가능성이 있는 걸 제외하면 큰 문제 없음. )
(PS. 언제나 그렇듯이 일본어 로캘에서만 테스트 했습니다. 일본어 로캘은 만병통치약.)
----------------------------------------------------------------------------------------------------------------------------------------
[All in One 사용법]
1. AralTrans02와 ezTrans 준비. (AralTrans02는 이용 철칙 하단에 있음)
2. 첨부된 파일들(AralBridge32.exe 등)이 게임 실행 파일과 동일한 폴더에 있게 압축을 해제한다.
3. AralBridge32.exe를 실행하면 모든게 알아서 자동으로 적용된다.
(레지스트리에 정보가 없을 경우 AralTrans와 ezTrans의 경로를 지정하는 경고창이 뜰 수 있음.)
4. 일본어 로캘이 아닌 경우 AralBridge32.exe를 Locale Emulator로 실행하면 된다.
[※ 기타 사항]
1. AralTrans와 마찬가지로 후킹&인젝션 프로그램 특성 상 윈도우 디펜더나 안티 바이러스 프로그램이 차단, 삭제할 가능성이 높으므로 예외 처리가 필요할 수 있음.
2. Auto 모드에서 AralBridge32의 관리자 권한을 기준으로 관련 프로그램의 권한도 자동으로 통일하게 실행하므로 일반적인 경우 비관리자 권한으로 실행해도 문제 없음.
(불명한 원인으로 수동으로 권한을 통일하게 해야하는 특수한 케이스가 있을 수도 있지만 알려진 버그는 아직 없음.)
3. Win10 22H2 (19045+ 빌드) 또는 Win11 (22000+ 빌드)의 호환만 테스트 하였으므로 이전 버전의 윈도우에서의 정상 작동을 보장하지 않음. 다만 Win10 이상이면 큰 문제는 없을 것으로 생각됨.
(Windows 로고 키 + R을 누르고, 열기 상자에 winver을 입력한 다음 확인을 선택해서 뜨는 창의 OS 빌드로 확인 가능)
4. Microsoft Visual C++ 재배포 가능 패키지 (2015~2022) x86, x64 모두에 의존하므로 정상적인 실행이 안 될시 최신 버전으로 재설치 및 재부팅 필요.
https://learn.microsoft.com/ko-kr/cpp/windows/latest-supported-vc-redist
(AralBridge 크래시 덤프가 생기면 높은 확률로 이 문제이며, 재설치 후 재부팅 하면 해결됨.)
----------------------------------------------------------------------------------------------------------------------------------------
AralBridge (Beta v241015)를 이용한 본판 All in One:
이하의 내용은 All in One에 포함된 내용물 목록
----------------------------------------------------------------------------------------------------------------------------------------
줄 바꿈 창 나감 문제 일부 해결 수정 스크립트 파일: [All in One 압축 파일에 포함]
(필수 아님, 대사의 스크립트 상의 줄바꿈을 텍스트 편집기의 정규식 바꾸기로 제거한 스크립트 파일)
(게임 실행파일(.exe)이 있는 폴더에 아래의 압축파일을 ...\script\*.ast가 되게 압축을 푼다.)
(세이브 파일 호환 안 됨, 추후 패치가 있을 경우 새로 작업해야 함)
적용 예시 (이럼에도 삐져 나오는 경우가 있을 수도 있으니 해당 경우는 DumpText 필터로 읽기 바람.):
----------------------------------------------------------------------------------------------------------------------------------------
이름 이미지 한글 패치: [All in One 압축 파일에 포함]
(필수 아님, 게임 실행파일(.exe)이 있는 폴더에 아래의 압축파일을 ...\pc\ja\...가 되게 압축을 푼다.)
----------------------------------------------------------------------------------------------------------------------------------------
폰트 교체 파일: [All in One 압축 파일에 포함]
(게임 실행파일(.exe)이 있는 폴더에 아래의 압축파일을 ...\font\*.ttf(or otf)이 되게 압축을 푼다.)
(내장 폰트와 이름이 똑같게 NanumGothicExtraBold 폰트로 바꿔치기 한 것.)
----------------------------------------------------------------------------------------------------------------------------------------
AralBridge (Beta v241015): [All in One 압축 파일에 포함]
(AralBridge32.exe를 실행하면 자동으로 적용.)
AralHookDLL64.dll 코드 기록: [수동으로 적용 필요 없음]
----------------------------------------------------------------------------------------------------------------------------------------
(제가 뭐라고 지껄여도, 여러분이 덧글을 쓰건 말건은 여러분의 자유이며 권리입니다. -.- )
(다만, 아청법의 두려움이 덧글 파워보다 커지는 순간, 블로그를 폐쇄할 수 밖에 없습니다. ㅇ.ㅇ;; )
(왜냐구요? 블로그는 딱히 자유로운 덧글 빼고는 즐거운 점이 한 개도 없기 때문이지요.ㅇㅇㅋ)
Tistory는 로그인 없이 덧글을 달 수 있어요.
그래요,로그인이필요없어요...(oㅅo)