우선 자폰일 경우 회피를 해줘야한다.
물고기님의 대해를 향한 열정의 산물로 길이 뚫렸다죠.
//자폰회피 일명 물고기자리
신버전
CMP DWORD PTR DS:[EBX],100
구버전
CMP DWORD PTR SS:[EBP],100
명령문 검색후 아래 조건 점프문(JL)을 JMP 로 수정
란퀘는 구버전을 적용하면 찾아지더군요
파챠3는 신버전을 활용하면 찾아지더군요.
앨리스에서 우선적으로 찾아두면 좋은지점을 알아보죠
쉐릴을 사랑하시는분의 열정이 뭍어나는곳입죠 쿨럭...
//쉐릴자리
CMP CL,81
명령문 검색후 죄다 브포걸고 걸리는놈들중에 추리면됨
란퀘매그넘
파챨3
이런식으로 혼자 떨어져 있는놈이 있습니다.
특징으로는 2군데에서 콜로 진입되는 지점이며 콜로 진입되기 전 지점함수 리퍼런스 스트링에 문자열 길이라는 단어가있습니다.
그냥 단순하게 CMP CL,81 명령문 검색후 죄다 브포걸고 돌려보는게 더 빠르게 찾을수있습니다.
//시스템 메시지 후킹지점
위와같은 지점의 함수시작부분
인자는 [EAX] 방식은 OVERWRITE // 상황에따라 IGNORE + REMOVESPACE 를 곁들일수도있습니다.
//대사 후킹지점
시스템 메시지 지점에서도 지나가지만 후킹방식 특성상 따로 잡아주는게 좋습니다.
시스템 메시지 지점에서 대사 지나갈때 대사 헥스값 얻어서 메모리 서치해보면 대본이 모여있는 메모리를 발견할수있습니다.
다음대사에 브포걸고 걸리면 콜문에서 적절히 타고 올라가시면됩니다.
이때 스마트 방식으로 대사가 옮겨질테니 조금 유의해서 찾아보면 인자위치는 알수있을겁니다.
//이름 관련 후킹지점
자폰우회수정을 해놓고 아랄 자체디버거에 걸립니다.
다만 이놈도 스마트 방식이기때문에 조금 유의해서 보면 찾을수있을겁니다.
아랄 자체디버거에 계속해서 이름이 보이지 않습니다. 어느정도 돌려보고 의심가는곳은 죄다 브포걸고 찾아보시기바랍니다.
정리
야매로 활용할 만한 바이너리값이라던지 명령어 리퍼런스가 없습니다.
출시마다 조금씩 변동되는 경향이 있어서 그냥 무난히
위 방법으로 시스템메시지 지점 찾고 / 메모리 서치로 대사지점 잡고 / 아랄자체디버거로 이름잡으면 됩니다.
시스템메시지 지점은 덮어쓰기를 사용해야하는데 이곳 메모리가 덮어쓰기를 활용할만큼 깔끔한 메모리상태가 아닌지라
다른 위치에서 스마트로 잡아보니 먼가 화면에 문자가 깨지는듯하더군요.
시스템메시지위치를 새로잡거나 해당지점에서 포인터 바꿔치기활용에관해서 좀더 생각해봐야할것같습니다.
+폰트같은경우 자폰의 영향으로 기본폰트 궁서를 활용할경우 겹치거나 할경우가 있습니다. 적절히 폰트를 변경해주세요
란퀘는 맑은 고딕이 어울리고 파챨3는 나눔고딕이 어울리더군요.
//샘플
55 | 란스퀘스트 매그넘 , ランス・クエスト マグナム [6] | 2012/02/24 |
54 | [ALICESOFT] 大帝国 ver 1.02 (코드, 필터파일 수정) [7] | 2011/04/28 |
53 | [ALICESOFT] 파스텔 차임 3 바인드시커 (코드, 필터파일 수정) [30] | 2013/02/15 |
52 | しゃ-まんず.さんくちゅあり -巫女の聖域- (샤먼즈 생츄어리 - 무녀의 성역-) [5] | 2010/11/26 |
51 | 모녀란관 , 母娘乱館 (수정) [59] | 2012/09/28 |
//드라페코 에서 추가적으로 아이템명 후킹위치
CRT+B
33 DB 8D 49 00 8A 45 00 3C 81
함수시작위치 // [esp+0x8] // 스마트
두군데 잡히는데 처음것만 사용해도 될듯싶다.
+두번째 잡히는곳은 이름/선택지/등등 인데 아랄자체디버거로 잡은걸 사용하는게 나을듯싶다.
선택지 지나갈때 자체디버거꺼 쓰면된다. 인자는 [esp+0x8]
//ex 어셈명령어 모양
// 좌표값(야매)은 초록색부분을 긁은 바이너리값입니다.
// 분흥색(55)이 후킹위치가 됩니다.
00523810 PUSH -1
00523812 PUSH 0077B110
00523817 MOV EAX,DWORD PTR FS:[0]
0052381D PUSH EAX
0052381E SUB ESP,4C
00523821 MOV EAX,DWORD PTR DS:[7E7474]
00523826 XOR EAX,ESP
00523828 MOV DWORD PTR SS:[ESP+48],EAX
0052382C PUSH EBX
0052382D PUSH EBP
0052382E PUSH ESI
0052382F PUSH EDI
00523830 MOV EAX,DWORD PTR DS:[7E7474]
00523835 XOR EAX,ESP
00523837 PUSH EAX
00523838 LEA EAX,DWORD PTR SS:[ESP+60]
0052383C MOV DWORD PTR FS:[0],EAX
00523842 MOV EAX,DWORD PTR SS:[ESP+70]
00523846 MOV DWORD PTR SS:[ESP+1C],EAX
0052384A MOV EAX,DWORD PTR SS:[ESP+74]
0052384E CMP DWORD PTR DS:[EAX+14],10
00523852 JB SHORT 00523858
00523854 MOV EBP,DWORD PTR DS:[EAX]
00523856 JMP SHORT 0052385A
00523858 MOV EBP,EAX
0052385A MOV EAX,DWORD PTR DS:[EAX+10]
0052385D ADD EAX,EBP
0052385F MOV DWORD PTR SS:[ESP+20],EAX
00523863 CMP EBP,EAX
00523865 JNB 00523974
0052386B XOR EBX,EBX
0052386D LEA ECX,DWORD PTR DS:[ECX]
00523870 /MOV AL,BYTE PTR SS:[EBP]
00523873 |CMP AL,81
00523875 |JB SHORT 0052387B
00523877 |CMP AL,9F
00523879 |JBE SHORT 0052387F
0052387B |CMP AL,0E0
0052387D |JB SHORT 005238F2
0052387F |MOV CL,BYTE PTR SS:[EBP+1]
00523882 |MOV BYTE PTR SS:[ESP+18],AL
//추가적으로 헥스 체인져
폰트 크기 수정은 요기 -> http://polaris.aralgood.com/index.php?document_srl=2126412&mid=board_4th_forum
※일부 게임에서 특정부분의 글자 크기가 일정하지않고 계단식으로 되어버려서... 다시 손봐야 함.
HOOK(GoatGUIEngine.dll!0x0001D020~0x00000005,TRANS([esp+0x4]+0x4,SMSTR),RETNPOS(COPY))
GoatGUIEngine.dll 의
SetText 나 AddPartsText 자체 함수의 공통 참조인 스마트 복사 쪽에 후킹하면
이름과 다른 시스템 코드 이외의 장소가 번역되요.
(예제: 현재 코드센터에 올라간 대재국, 파슷챠 코드의 2번째 코드주소)
+ 파슷챠는 저 GoatGUIEngine.dll 부분이 본체 실행파일에 결합되서
야메(?) 찾기가 살짝 난해할 수 도 있어요.
우와~ 뭔말인지 못알아먹겠지만... 대단하시네요