MYS projects/코드 파인딩 프로젝트

코드 파인딩 프로젝트 452

자본주의자 2020. 5. 22. 18:05

[200529][エウシュリー] 天冥のコンキスタ














파인더의 한 마디:

에우슈리 신작입니다ㅇ.ㅇ

가격이 평소 에우슈리 작품에 비해 싼편입니다.

그래서인지 내용이나 플레이 타임이 상대적으로 적습니다.



이번 작품은 인간은 별로 안 나오고 마족(수마)과 천사의 싸움이 배경입니다.

수마라서인지 여러 방면으로 히메가리와 비슷한 부분이 있습니다.


체험판은 스토리 내용은 거의 없고 전투 3번이 전부라 다른 스토리에 대한 정보가 없습니다.

프롤로그 내용조차 체험판에 없습니다.


본격적인 내용은 본판이 나와야 알 수 있을 것 같습니다.

.

.

.

이번에 UNICODE로 변환하여 출력하는 지점이 있습니다.

그런데 AralTrans3의 ATcode.dll의 UNICODE 출력 시 스트링의 첫 바이트가 0x00인 경우(=첫 WideChar의 뒷자리가 0x00인 경우), MultiByte의 스트링의 null 문자처럼 처리하는 문제가 있어서 ATCode_UNICODE_FIX.dll 파일로 살짝 개조하여 AralTrans3.7z 첨부파일에 넣었습니다.

이전에 적용한 적이 있으신 분들은 이 파일만 AralTrans3 설치 폴더\Plugin\Algorithm에 넣으셔도 됩니다.

.

.

.

복붙은 좋은 겁니다. (문제 발생 시 다른 에우슈리 코드글들의 댓글이 도움이 될 때가 많습니다.)

http://capita.tistory.com/entry/코드-파인딩-프로젝트-56



기본적으로 아래의 조건을 권장합니다.

일본어 로캘에서 설치 및 실행. (아래 링크의 댓글과 같이 하면 한국어 로캘도 실행은 된다고 한다: https://capita.tistory.com/480#comment17069584)

관련된 모든 프로그램(아랄0.2, 아랄0.3, 게임 실행 파일인 AGE.exe)을 관리자 권한으로 실행.

③ 사용자 계정 이름이 영어로만 이루어져야 하며, 아니신 분들은 (계정 이름을 수정해도 경로 이름이 바뀌지 않으므로) 새로운 계정을 만드셔야합니다.

④ 모든 경로에 한글이 들어가지 않아야 합니다. (일본어로캘일 경우 일본어는 상관없습니다.)


댓글에 자주 달리는 기타 몇몇 단순한 문제들 상황별 해결.

 글자 크기가 너무 큰 경우→게임 내의 설정에서 폰트를 메이리오에서 MS 고딕으로 바꾼다. (폰트 종류는 아랄에서 지정하므로 크기만 변함. MS 고딕이 없다면 다른 폰트들을 선택해가며 적당한 크기로 출력되는 경우가 있는지 전부 확인.)

② (아랄 적용 유무와 무관) 전투 애니메이션이나 오프닝에서 게임이 멈추는 경우→전투 애니메이션의 경우 옵션에서 애니메이션을 끄면 되지만, 오프닝에서 멈추거나 애니메이션을 쓰는 근본적인 해결을 위해서는 코덱 설치. (아랄랩의 글을 보고 K-Lite 코덱을 깔았더니 해결. 다른 코덱들도 가능할 듯 하나 확인 안 함.)

③ 일부 대사가 번역이 안 되거나 루비문자가 보이는 경우(및 그에 따른 번역률 저하)→바이너리 패치가 적용이 안 되었으므로 해당부분을 확인한다.


2020년 05월 22일 PM 06시 05분 : 코드글을 게시.

2020년 05월 30일 AM 03시 01분 : 실행파일이 변화하지 않은 경우의 임시 ATS 파일을 하단에 게시.

2020년 05월 30일 PM 03시 03분 : 서양쪽 안티디버깅 해제 파일 사용 시의 ATS 파일을 하단에 게시.

                                    TwoComet 폰트 업로드.

2020년 05월 30일 PM 03시 40분 : TwoComet 폰트를 사용하면 모든 글자가 정상적으로 출력되는 것을 확인.

2020년 05월 30일 PM 05시 25분 : TwoComet 폰트 재업로드.

                                  

메모:

바이너리:

체험판->본판 (일치)

5E164->"


000301B5->"

0002DD52->"

0005A3B0->"

0005A8AB->"

0004A43B->"

001C03FA->"

000BDDC6->"

001BF394->"


001C03FA->"

0007ED80->"

00082790->"

001BF394->"


AGE.EXE!0x000301B5: 8D B7 ?? ?? ?? ?? 8B 87 ?? ?? ?? ?? 8B C8 C1 E1 04 2B C8의 다음 명령어와 다다음 명령어(0x9), MOV E?X,DWORD PTR DS:[E$X*8+ESI+5XXXX]꼴이면 MOV ECX,E$X;CALL (개조함수 #5);

AGE.EXE!0x0002DD52: 85 C0 75 ?? 8B 87 ?? ?? ?? ?? 8B C8 C1 E1 04 2B C8의 다음 명령어와 다다음 명령어(0x9), 위와 동일.

(개조함수 #4,#5에서 게임마다 다른 고유값인 저 5XXXX을 수정 할 것. 위의 셋은 모두 스크립트 함수 호출 명령 구문.)

AGE.EXE!0x0005A3B0: A9 00 00 00 40 ?? ?? 0D 00 00 00 40을 포함하는 함수의 첫 지점(0x5), JMP (개조함수 #7);

AGE.EXE!0x0005A8AB: A9 00 00 00 08 ?? ?? 0D 00 00 00 20을 포함하는 함수의 첫 지점(0x3), -0x5, JMP (개조함수 #8);

AGE.EXE!0x0004A43B: FF ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 F8 FF 75을 포함하는 함수의 첫 지점(0x3), -0x5, JMP (개조함수 #9);

(개조함수 #7,#8,#9 에서 되돌아가는 JMP 주소를 수정 할 것. 각각 스크립트 함수 0x72, 0x305, 0x8F에 해당.)

AGE.EXE!0x001C03FA: 잉여 공간의 첫 지점.

(개조함수 #5에서 EIP 구한 후 빼는 상대 주소를 수정 할 것. 헤더에서 .rsrc 다음 이미지 Name의 위치를 얻는 상수 수정 할 것.)


(개조함수 #3에서 ESI가 바뀌는 경우가 발생하여 0x10 크기 이하의 개조 함수들을 추가(넘버링을 달지 않고 기존 넘버링도 바꾸지 않는다.). #4의 ESI를 바꾸는 것도 잊지 말 것.)


AGE.EXE!0x000BDDC6: 새로운 기타 후킹 지점인데 길이값을 넣어야 하여 다른 잉여 공간에서 개조한다. 패턴은 이후에 추가.



후킹 지점:

AGE.EXE!0x001C03FA: 잉여 공간의 첫 지점. (대사: 상단의 개조함수 참조.)

AGE.EXE!0x0007ED80: 85 C0 74 F4 5?을 포함하는 함수의 첫 지점. (기타: 스크립트 함수 0x6E, 0x7D, 0x196의 맨 아래에서 1,2 번째의 CALL 중에 LEA E?X,[E?I+1????] 바로 아래의 CALL로 공통.)

AGE.EXE!0x00082790: 2B C1 03 D0 8B 86 ?? ?? ?? ?? 85 C0 74을 포함하는 함수의 첫 지점. (선택지: 스크립트 함수 0x204, 0x205의 맨 아래에서 1,2 번째의 CALL 중에 LEA E?X,[E?I+1????] 바로 아래의 CALL로 공통.)

AGE.EXE!0x001BF394: 다른 잉여 공간의 첫 지점. (신규 기타: 0x389 스크립트 함수 내에서 유니코드로 변환하고 DWrite를 이용하여 출력.)



※주의. 최신 아랄을 쓰지 않다가 발생한 문제는 책임지지 않습니다ㅇ.ㅇ

(AGE 엔진으로 ... 상당히 복잡하니 하단의 링크를 따라 나오는 글과 댓글들을 읽어보면서 노력해보세요.)

(PS. 언제나 그렇듯이 일본어 로캘에서만 테스트 했습니다. 일본어 로캘은 만병통치약.)

----------------------------------------------------------------------------------------------------------------------------------------공식 Support page:

http://www.eukleia.co.jp/eushully/spdl.html


바이너리 패치 코드(.ats 파일의 설명에도 들어있습니다.):

{AGE.EXE!0x000301B5(90 90 E8 C4 03 19 00 90 90 89 F9), AGE.EXE!0x0002DD52(90 90 E8 27 28 19 00 90 90), AGE.EXE!0x0005A3B0(E9 AA 62 16 00), AGE.EXE!0x0005A8AB(E9 BF 5D 16 00 EB F9 90), AGE.EXE!0x0004A43B(E9 3C 62 17 00 EB F9 90), AGE.EXE!0x001C03FA(90 90 90 90 90 C2 04 00 53 8B 1A 31 C0 83 FB 6E 75 0D 8B 5A 10 89 1F 83 C7 04 8D 40 05 5B C3 81 FB 93 01 00 00 74 10 81 FB 96 01 00 00 75 0D 8B 5A 10 89 1F 83 C7 04 8D 40 07 5B C3 83 FB 6F 75 05 8D 40 03 5B C3 81 FB 8F 00 00 00 75 06 8B 5A 08 8B 1C 99 83 FB 72 74 08 81 FB 05 03 00 00 75 01 40 5B C3 60 89 E5 83 EC 18 E8 36 01 00 00 8B 55 F8 83 3A 00 75 31 8B 45 FC 8B 4C 30 E8 89 CA C1 E2 04 29 CA 8D 0C D6 8B 1C 08 51 8B 4C 08 FC 8B 7D F4 89 DA E8 6E FF FF FF 85 C0 74 0A 83 F8 01 74 09 8D 14 82 EB ED 89 EC 61 C3 C7 07 00 00 00 00 8B 75 F4 8B 7D F0 52 8B 06 85 C0 74 17 8D 04 81 8A 10 80 FA FF 74 08 F6 D2 88 17 40 47 EB F1 83 C6 04 EB E3 8B 55 F0 52 8B 02 E8 1F FF FF FF 8B 12 39 D0 74 C1 8B 55 F8 8B 4D E4 8B 45 FC 8D 04 08 8B 55 F8 89 42 04 58 89 42 08 8B 00 89 02 89 5A 0C 8B 45 FC 8B 4C 08 FC 8B 45 F4 8B 00 89 42 10 8D 04 81 89 42 14 8B 72 0C 8B 7D EC B9 08 00 00 00 F3 A5 8B 5D E8 8B 7A 14 8B 75 F0 31 C9 52 8A 06 84 C0 74 0F F6 D0 8A 14 39 88 14 19 88 04 39 41 46 EB EB 5A 8B 04 39 89 04 19 31 C0 F7 D0 89 04 39 83 C1 04 89 4A 18 8B 7A 0C 8B 42 10 31 C9 BB 6E 00 00 00 89 1F 89 4F 04 89 4F 08 C7 47 0C 02 00 00 00 8B 1A 89 5F 14 89 4F 18 89 4F 1C 89 EC 61 C3 8B 8C CF 64 E1 05 00 8B 01 3D 96 01 00 00 74 07 83 F8 6E 74 02 EB 07 E8 A9 00 00 00 8B 01 C3 60 C7 45 FC 64 E1 05 00 EB 03 58 EB 05 E8 F8 FF FF FF 2D B1 05 1C 00 8D 90 38 03 00 00 8B 4A 0C 03 4A 08 8D 84 01 00 F0 FF FF B9 00 01 00 00 89 45 F8 8D 04 01 89 45 F4 8D 04 01 89 45 F0 8D 04 01 89 45 EC 8D 04 01 89 45 E8 61 C3 60 89 E5 83 EC 18 E8 A9 FF FF FF 8B 5D F8 8B 45 FC 8B 4C 30 E8 89 CA C1 E2 04 29 CA 8D 0C D6 8B 04 08 8B 00 39 03 75 2E 31 C9 89 0B 8B 7B 0C 8B 75 EC 8D 49 08 F3 A5 8B 7B 14 8B 75 E8 8B 4B 18 F3 A4 8B 43 04 8B 53 08 89 10 8D 7B 04 31 C0 B9 40 01 00 00 F3 AB 89 EC 61 C3 E8 0B 00 00 00 E8 0F FE FF FF E8 06 00 00 00 C3 89 F0 89 FE C3 89 F7 89 C6 C3 E8 25 00 00 00 55 8B EC 51 53 90 E9 46 9D E9 FF E8 15 00 00 00 56 8B F1 E9 37 A2 E9 FF E8 08 00 00 00 56 8B F1 E9 BA 9D E8 FF E8 C7 FF FF FF E8 58 FF FF FF E8 C2 FF FF FF C3), AGE.EXE!0x000BDDC6(E9 CF 15 10 00 90), AGE.EXE!0x001BF394(90 90 90 90 90 C3 50 57 51 EB 08 FF 52 48 E9 25 EA EF FF 60 89 E5 EB 05 89 EC 61 EB EE 8B 45 24 89 C2 E8 D9 FF FF FF 39 C2 74 ED 31 C9 66 83 3C 48 00 74 03 41 EB F6 90 89 45 24 89 4D 28 EB D8)}


마도교각과 적용법은 동일하므로, 같은 글을 다시쓰진 않겠습니다.


마도교각의 상세한 아랄 적용법...(Link)



마도교각 에러발생시...(Link)


(에러가 뜨면 제일 먼저 설정에서 폰트를 바꾸는 것 부터 해보세요.ㅇ.ㅇ)


Setup_AralTrans3.exe

AralTrans3.7z

(AralTrans 0.3을 설치후, 위의 압축을 풀어서 AralTrans 0.3 설치폴더에 덮어쓰세요.)

(이번에 ATCode_UNICODE_FIX.dll를 추가하였으니 이전에 했던 분들도 저 파일만은 다시 해주셔야 합니다.)


AralGothic 폰트 파일(압축풀고 열어서 설치하세요.)(아래의 TwoComet 폰트가 안 먹힐시.):

AralGothic.ttf.7z

TwoComet 폰트 파일(압축풀고 열어서 설치하세요.):

TwoComet_font.7z

이번 작품은 체험판하고 본판에 차이가 있습니다.

폰트가 제대로 나오지 않는 분들은 상단의 AralGothic이나 TwoComet 폰트를 사용하시기 바랍니다.

(게임 내 설정에서 폰트변경을 어디서 하는지는 상단 스크린샷 중에 마지막 스크린샷을 참고하시기 바랍니다.)


실행파일을 변경하지 않은 정품키 인증 시 ATS 파일:

FUCKING_eushully_9_by_Capitalist_1.7z

서양쪽의 안티디버깅을 해제한 실행파일 사용 시 ATS 파일(정품 실행파일보다 이게 글자가 안 깨진다는 보고가 많음.):

FUCKING_eushully_9_by_Capitalist_2.7z

Mai@KF.dll를 쓰는 중국 크랙은 DRM보다 강력한 안티디버깅 탓에 AralTrans3 적용불가.


(위의 파일의 압축을 풀어서 나온 .ats 파일을 AralTrans 0.3으로 열면 됩니다.)

(자세한 적용방법은 위 파일을 AralTrans 0.3으로 열면 나오는 설명에 들어있습니다.)

(↑ 반드시 '.ats' 파일의 설명 또는 위의 링크를 읽으세요.ㅇ.ㅇ... 아니하면 님도저도 귀찮습니다.)

ATdata.7z

----------------------------------------------------------------------------------------------------------------------------------------

(제가 뭐라고 지껄여도, 여러분이 덧글을 쓰건 말건은 여러분의 자유이며 권리입니다. -.- )

(다만, 아청법의 두려움이 덧글 파워보다 커지는 순간, 블로그를 폐쇄할 수 밖에 없습니다. ㅇ.ㅇ;; )

(왜냐구요? 블로그는 딱히 자유로운 덧글 빼고는 즐거운 점이 한 개도 없기 때문이지요.ㅇㅇㅋ)


Tistory는 로그인 없이 덧글을 달 수 있어요.


요,...(oㅅo)