MED엔진 한글은 출력가능한데 후킹지점을 못 찾겠군요.
왠지 Qlie 엔진 때 기억도 나고해서.... 안되는건 안되는거다.
먼저 한글 출력에 관해서
요놈이 아스키값에 대응하는 유니코드값을 저장 합니다.
그리고 저걸 통해서 게임중에는 활용을 합니다.
먼저 게임을 구동하고 아랄을 먹힙니다 > ATCode > 폰트로드바를 최대로 땡기고 > 문자셋 변환 체크 후 바로가기 생성합니다.
바로가기 생성되었으면 게임을 종료합니다.
그리고 _FONTSET.MED를 지워버리든가 다른 폴더에 넣어둡니다.
바로가기로 시작하면 저놈이 아랄형 뜻대로 새로 생성됩니다.
위 와같이 깨진 문자에 한글이 보인다면 이제 후킹해서 번역해주면 한글출력이 됩니다.
이놈 후킹이 애매한게
어디 옮겨서 쓰지않고 포인터로 위치만 돌리는것 같더군요. 이래서 포인터x 메모리x
왠지 qlie생각이 나더군요. 젠장 // qlie 파다가 속터지는줄 결국 포기 요놈도 결국 포기
몇가지 후킹지점 찾는데 바이너리값이라도 얻기 쉬우시라고 위치 알려드릴게요.
셋팅된 대사나 이름이 옵니다. eax 로 오고 -4에 길이값이 있지만 포인터 바꿔치기가 안되는 지역입니다.
__________________________________________________
바이너리
55 8B EC 83 C4 AC 89 55 D8 89 45 FC
__________________________________________________
한 씬 분량의 스크립트가 들어오는 지역입니다. 여기서 수작을 걸어볼려했으나.
건들지 말아야할것들이 건들어지고 대사가 뒤죽박죽이 되어버리더군요.
__________________________________________________
바이너리
66 C7 45 C0 74 00 8D 45 D8 8B 55 9C
처음 소개한 지점에다가 덮어쓰기만 했을때 요렇게 뒷문이 잘리겠죠//
요상한점은 이름창 문자와 대사창 문자는 따로돕니다.
이름창은 1바이트문 허용해주고 대사창은 오직 2바이트문만 출력되더군요. 더러놈들이 20은 살려줘야지 그것까지 죽여버리다니.
혹시 qlie 뚫으셨던분들은 쉽게 뚫으실지도 모르겠습니다. 전 안되더라구요 그놈도 그렇고 이놈도 그렇고
________________________________________________________추가내용
아래 레지 등록시키고 재부팅 하신다음에 해보세요.
//내용
________________________________________________________________
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"MS ゴシック"="gulim.ttc,gulim"
"MS 明朝"="gulim.ttc,gulim"
_________________________________________________________________
저는 두개의 폰트는 링크를 시켜놓은 상태인지라...
두병더더님 혹시 _fontest.med 7z로 해서 올려주실 수 있나요?..
제가 해보니 대략 한 3.7mb쯤 나오는데...
일단 윈7에서는 안되는 것 같습니다..ㅠㅠ.. 방법이 틀린거일 수도 있고요..
00429805 |. 8BEC MOV EBP,ESP
00429807 |. 81C4 70FFFFFF ADD ESP,-90
0042980D |. 833D 60D27D00>CMP DWORD PTR DS:[7DD260],0
00429814 |. 74 0C JE SHORT TSUBOI_t.00429822
00429816 |. FF35 60D27D00 PUSH DWORD PTR DS:[7DD260]
0042981C |. E8 9F3D0900 CALL TSUBOI_t.004BD5C0
00429821 |. 59 POP ECX
00429822 |> 6905 4CD27D00>IMUL EAX,DWORD PTR DS:[7DD24C],2370
0042982C |. 8B15 4CD27D00 MOV EDX,DWORD PTR DS:[7DD24C]
00429832 |. C1E2 06 SHL EDX,6
00429835 |. 8D1452 LEA EDX,DWORD PTR DS:[EDX+EDX*2]
00429838 |. 03C2 ADD EAX,EDX
0042983A |. 50 PUSH EAX ; /Arg1
0042983B |. E8 583F0900 CALL TSUBOI_t.004BD798 ; \TSUBOI_t.004BD798
00429840 |. 59 POP ECX
00429841 |. A3 60D27D00 MOV DWORD PTR DS:[7DD260],EAX
00429846 |. A1 5CD17D00 MOV EAX,DWORD PTR DS:[7DD15C]
0042984B |. E8 30000700 CALL TSUBOI_t.00499880
00429850 |. 8B40 14 MOV EAX,DWORD PTR DS:[EAX+14]
00429853 |. 33D2 XOR EDX,EDX
00429855 |. E8 6EAF0600 CALL TSUBOI_t.004947C8
0042985A |. A1 5CD17D00 MOV EAX,DWORD PTR DS:[7DD15C]
0042985F |. E8 1C000700 CALL TSUBOI_t.00499880
00429864 |. 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C]
00429867 |. 8B15 54D27D00 MOV EDX,DWORD PTR DS:[7DD254]
0042986D |. E8 92A90600 CALL TSUBOI_t.00494204
00429872 |. A1 40D27D00 MOV EAX,DWORD PTR DS:[7DD240]
00429877 |. E8 54180100 CALL TSUBOI_t.0043B0D0
0042987C |. 50 PUSH EAX
0042987D |. A1 5CD17D00 MOV EAX,DWORD PTR DS:[7DD15C]
00429882 |. E8 F9FF0600 CALL TSUBOI_t.00499880
00429887 |. 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C]
0042988A |. 5A POP EDX
0042988B |. E8 ECA90600 CALL TSUBOI_t.0049427C
00429890 |. A1 5CD17D00 MOV EAX,DWORD PTR DS:[7DD15C]
00429895 |. E8 E6FF0600 CALL TSUBOI_t.00499880
0042989A |. 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C]
0042989D |. BA FFFFFF00 MOV EDX,0FFFFFF
004298A2 |. E8 35A70600 CALL TSUBOI_t.00493FDC
004298A7 |. 833D 4CA97C00>CMP DWORD PTR DS:[7CA94C],0
004298AE |. 74 27 JE SHORT TSUBOI_t.004298D7
004298B0 |. 8D45 F7 LEA EAX,DWORD PTR SS:[EBP-9]
004298B3 |. E8 50010000 CALL TSUBOI_t.00429A08
004298B8 |. 33D2 XOR EDX,EDX
004298BA |. E8 7D010000 CALL TSUBOI_t.00429A3C
004298BF |. 8A08 MOV CL,BYTE PTR DS:[EAX]
004298C1 |. 51 PUSH ECX
004298C2 |. A1 5CD17D00 MOV EAX,DWORD PTR DS:[7DD15C]
004298C7 |. E8 B4FF0600 CALL TSUBOI_t.00499880
004298CC |. 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C]
004298CF |. 5A POP EDX
004298D0 |. E8 D3A90600 CALL TSUBOI_t.004942A8
004298D5 |. EB 1E JMP SHORT TSUBOI_t.004298F5
004298D7 |> 8D45 F6 LEA EAX,DWORD PTR SS:[EBP-A]
004298DA |. E8 29010000 CALL TSUBOI_t.00429A08
004298DF |. 8A10 MOV DL,BYTE PTR DS:[EAX]
004298E1 |. 52 PUSH EDX
004298E2 |. A1 5CD17D00 MOV EAX,DWORD PTR DS:[7DD15C]
004298E7 |. E8 94FF0600 CALL TSUBOI_t.00499880
004298EC |. 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C]
004298EF |. 5A POP EDX
004298F0 |. E8 B3A90600 CALL TSUBOI_t.004942A8
004298F5 |> C745 FC 20000>MOV DWORD PTR SS:[EBP-4],20
004298FC |> 837D FC 7F /CMP DWORD PTR SS:[EBP-4],7F
00429900 |. 75 07 |JNZ SHORT TSUBOI_t.00429909
00429902 |. C745 FC A1000>|MOV DWORD PTR SS:[EBP-4],0A1
00429909 |> 33D2 |XOR EDX,EDX
0042990B |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4]
0042990E |. E8 71010000 |CALL TSUBOI_t.00429A84
00429913 |. FF45 FC |INC DWORD PTR SS:[EBP-4]
00429916 |. 817D FC A0000>|CMP DWORD PTR SS:[EBP-4],0A0
0042991D |.^ 7C DD \JL SHORT TSUBOI_t.004298FC
0042991F |. C745 FC 81000>MOV DWORD PTR SS:[EBP-4],81
00429926 |> 817D FC A0000>/CMP DWORD PTR SS:[EBP-4],0A0
0042992D |. 75 07 |JNZ SHORT TSUBOI_t.00429936
0042992F |. C745 FC E0000>|MOV DWORD PTR SS:[EBP-4],0E0
00429936 |> C745 F8 40000>|MOV DWORD PTR SS:[EBP-8],40
0042993D |> 837D F8 7F |/CMP DWORD PTR SS:[EBP-8],7F
00429941 |. 74 10 ||JE SHORT TSUBOI_t.00429953
00429943 |. 8B45 FC ||MOV EAX,DWORD PTR SS:[EBP-4]
00429946 |. C1E0 08 ||SHL EAX,8
00429949 |. 0345 F8 ||ADD EAX,DWORD PTR SS:[EBP-8]
0042994C |. 33D2 ||XOR EDX,EDX
0042994E |. E8 31010000 ||CALL TSUBOI_t.00429A84
00429953 |> FF45 F8 ||INC DWORD PTR SS:[EBP-8]
00429956 |. 817D F8 FC000>||CMP DWORD PTR SS:[EBP-8],0FC
0042995D |.^ 7E DE |\JLE SHORT TSUBOI_t.0042993D
0042995F |. FF45 FC |INC DWORD PTR SS:[EBP-4]
00429962 |. 817D FC F0000>|CMP DWORD PTR SS:[EBP-4],0F0
00429969 |.^ 7C BB \JL SHORT TSUBOI_t.00429926
0042996B |. 8A0D 44D27D00 MOV CL,BYTE PTR DS:[7DD244]
00429971 |. 888D 70FFFFFF MOV BYTE PTR SS:[EBP-90],CL
00429977 |. A0 48D27D00 MOV AL,BYTE PTR DS:[7DD248]
0042997C |. 8885 71FFFFFF MOV BYTE PTR SS:[EBP-8F],AL
00429982 |. 6A 78 PUSH 78
00429984 |. B8 54D27D00 MOV EAX,TSUBOI_t.007DD254
00429989 |. E8 9282FDFF CALL TSUBOI_t.00401C20
0042998E 50 PUSH EAX
0042998F 8D95 72FFFFFF LEA EDX,DWORD PTR SS:[EBP-8E]
00429995 |. 52 PUSH EDX ; |Arg1
00429996 |. E8 194E0900 CALL TSUBOI_t.004BE7B4
0042999B |. 83C4 0C ADD ESP,0C
0042999E |. 68 25E27400 PUSH TSUBOI_t.0074E225 ; /Arg2 = 0074E225 ASCII "wb"
004299A3 |. 68 18E27400 PUSH TSUBOI_t.0074E218 ; |Arg1 = 0074E218 ASCII "_FONTSET.MED"
004299A8 |. E8 1F6C0900 CALL TSUBOI_t.004C05CC ; \TSUBOI_t.004C05CC
004299AD |. 83C4 08 ADD ESP,8
004299B0 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
004299B3 |. FF75 F0 PUSH DWORD PTR SS:[EBP-10] ; /Arg4
004299B6 |. 68 80000000 PUSH 80 ; |Arg3 = 00000080
004299BB |. 6A 01 PUSH 1 ; |Arg2 = 00000001
004299BD |. 8D8D 70FFFFFF LEA ECX,DWORD PTR SS:[EBP-90] ; |
004299C3 |. 51 PUSH ECX ; |Arg1
004299C4 |. E8 83700900 CALL TSUBOI_t.004C0A4C ; \TSUBOI_t.004C0A4C
004299C9 |. 83C4 10 ADD ESP,10
004299CC |. FF75 F0 PUSH DWORD PTR SS:[EBP-10] ; /Arg4
004299CF |. 6905 4CD27D00>IMUL EAX,DWORD PTR DS:[7DD24C],2370 ; |
004299D9 |. 8B15 4CD27D00 MOV EDX,DWORD PTR DS:[7DD24C] ; |
004299DF |. C1E2 06 SHL EDX,6 ; |
004299E2 |. 8D1452 LEA EDX,DWORD PTR DS:[EDX+EDX*2] ; |
004299E5 |. 03C2 ADD EAX,EDX ; |
004299E7 |. 50 PUSH EAX ; |Arg3
004299E8 |. 6A 01 PUSH 1 ; |Arg2 = 00000001
004299EA |. FF35 60D27D00 PUSH DWORD PTR DS:[7DD260] ; |Arg1 = 00000000
004299F0 |. E8 57700900 CALL TSUBOI_t.004C0A4C ; \TSUBOI_t.004C0A4C
004299F5 |. 83C4 10 ADD ESP,10
004299F8 |. FF75 F0 PUSH DWORD PTR SS:[EBP-10] ; /Arg1
004299FB |. E8 60680900 CALL TSUBOI_t.004C0260 ; \TSUBOI_t.004C0260
00429A00 |. 59 POP ECX
00429A01 |. 8BE5 MOV ESP,EBP
00429A03 |. 5D POP EBP
00429A04 \. C3 RETN
그런데 혹시 언어로케일 일본어로 변경후에 어플 안 먹이고 하신 건가요?
한글 언어 상태에서는 어플 먹이고 하니까 폰트셋이 안 바뀌는 것 같아서요.
그리고 그냥 실행하면 뷁뷁뷁 처럼 나오네요. 그냥 실행하면 한글 폰트셋으로 인식해 버리는것 같기도 하고...