Skip to content

폴라리스 ~Polaris~

분 쟁 절 대 엄 금
2013.04.06 16:28

(제거중...)

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

(제거중...)

  • profile
    KoNaTa 2013.04.06 16:57
    오호 엄청난 작품들이군요 +ㅅ + 대단하심..역시
    위대하신 자본주의님을 겨를자 누구인갓!!!!
    일단 다카포만 기달리는 1人
  • ?
    굴러가는시간 2013.04.06 18:16
    닭갚어가 재밌나 봐요?
  • ?
    viorate 2013.04.06 18:55
    마도교각 폰트 문제는 현재로서는 0.3을 써야 이상하게 나오지 않습니다. 전작들과 같죠.
    후킹지점도 전작들처럼 아랄 디버깅으로 쉽게 검색됩니다.
    다만 치명적인 문제가 새로 생겼습니다.

    체험판 at코드를 찾아서 해보신 분들은 아시겠지만 에우슈리 게임 엔진이 좀 바뀌어서 다른건 다 똑같은데 이번 마도교각부터 대사 부분의 전문(전체문장) 출력이 안 됩니다.
    창각의 아테리얼까지의 에우슈리 엔진의 문장 출력은 다음과 같습니다.
    1. 요미가나가 없는 문장 : 개행없이 한번에 전문 출력. 개행은 자동개행
    2. 요미가나가 있는 문장 : 1과 같이 출력하지만 요미가나 부분에서 끊어서 출력. 그래서 요미가나가 들어가는 부분은 약간 번역이 이상해진다. 다만 끊는 부분은 개행을 하지 않음.
    여기에 마도교각부터는 하나가 추가됩니다.
    3. 모든 문장은 요미가나 여부와는 별개로 개행에 맞게 스크립트 단계에서 잘려서 출력된다. 읽기 전에 스크립트에서부터 잘려 있다.
    전문출력이 아니기 때문에 한글로 번역시 대부분의 문장이 1줄->2줄이 되어 긴 문장은 뒷부분이 잘립니다. 잘려도 읽을 수 있는 부분은 그나마 다행인데 마도교각은 상황에 따라 2행출력과 3행출력을 병행하기 때문에 2행출력 부분은 상당수의 대사가 잘리는 사태가 발생합니다.
    현재로서는 제품판도 체험판과 같을 확률이 매우 높아 보입니다.

    해결책은 몇 가지 방법이 있습니다.
    1. 커스텀 스크립트 필터로 게임 전체를 준한글화 : 개노가다지만 유효한 방법
    2. 문장 자동개행 부분을 찾아서 문장 끝에서만 실행하도록 수정 : 번역이 약간 이상한 것을 감수하면 유효한 방법. 하지만 해당 부분을 찾지 못함
    3. 스크립트 읽어오는 부분을 전문을 읽어오도록 수정 : 2보다 더한 난이도. 최선의 방법이지만 이게 가능한 분은 소수일 듯.
    4. 에그헤드 병행 : 위의 방법이 안 되면 현실적인 방법. 대사 부분만 에그헤드로 번역. 다만 사용자사전을 따로 작업해줘야 하는 불편함이 있음.
    아마 현실은 4의 방법을 쓰겠죠. 제품판에서는 전문 출력이 되면 베스트겠지만요.
  • profile
    자본주의자 2013.04.06 18:59

    오옹..... 그렇군요. AralTrans 0.3에서는 안튕기나 보네요..ㅇ.ㅇ

    개조로 그런 자질구레한 개행을 없앨수 있나 살펴보겠습니다.ㅇㅇㅋ

    ....

    egghead+ITH는 싫어서리....


    (PS. 올리 등으로 자세히 살펴보셨나요...ㅇ.ㅇ?)

    ..............................................................................

    있네요....-.-

    그냥 NOT으로 초간단암호화 되어있어서 잘 안보이는 것일 뿐, 스크립트째로 옮겨서 붙여 번역후 쪼개면 만사OK겠네요.ㅇ.ㅇ

  • ?
    viorate 2013.04.06 19:21
    올리로 보긴 했지만 제 실력으로 2나 3을 하기엔 무리인 것 같네요.
    일단 마도교각 체험판의 경우 대사 부분은 고정스택(66F040)을 사용하고 있어서 충분히 개조의 여지는 있습니다. 꼭 개행 여부의 변경만이 아니라 스크립트를 맞게 읽어올 수 있다면 스택 내용을 바꿔버리면 되니까요.
    다만 생각보다 쉽지 않은 게 스크립트가 저장된 스택 부분을 살펴보니 전작들과는 다르게 스크립트 자체가 잘려 있습니다. 이걸 알맞게 불러오기가 어렵네요. 스크립트를 읽어오는 부분은 41A9FB부터 읽는 것 같더군요.(스크립트는 문자가 비트 반전되어 있습니다.)
  • profile
    자본주의자 2013.04.06 20:30
    음..... 스크립트 포인터에 연관된 내용이 담긴 메모리를 덮었다가, 0041E1D0라는 함수를 지날때 복원해주면 될듯 하네요.ㅇ.ㅇ
    올리 상에서 수행해본 결과, 잘 됩니다.... 이를 개조식으로 구현하면 만사 OK일듯합니다.
  • profile
    KoNaTa 2013.04.06 20:43
    먼가........먼가........말이 어렵다!!!!!!!!! 이런 ㅠㅠㅠㅠㅠ
  • profile

    ..................분석 및 개조 코드 짜는데에 7시간 이나 걸렸군요.-.-;

    ..... 이걸 디버거에 넣으면 되는건가!

    ------------------------------메모장--------------------------------------

    한 라인당 길이 한계 0x32, 3라인 초과 시 튕김, 폰트 문제는 없음

    6E 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00
    2D 7E 01 00

    루비
    96 01 00 00 00 00 00 00 00 00 00 00 02 00 00 00
    33 7E 01 00 02 00 00 00 34 7E 01 00
    아래                             위

    6E 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00
    36 7E 01 00

    96 01 00 00 00 00 00 00 00 00 00 00 02 00 00 00
    37 7E 01 00 02 00 00 00 38 7E 01 00

    6E 00 00 0000 00 00 00 00 00 00 00 02 00 00 00
    3A 7E 01 00

    6F 00 00 00 00 00 00 00 00 00 00 00

    6E 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00
    40 7E 01 00

    72 00 00 00

    func(메모리 덮어쓰기)
    {
    nop
    nop
    nop
    nop
    nop
    retn 4
    }

    func(포인터 배열 생성)
    {
    push ebx
    mov EBX, dword ptr ds:[edx]
    select(EBX)
    case 6E
    mov ebx,dword ptr ds:[EDX+0x10]
    mov dword ptr ds:[edi], eBX
    add edi, 4
    mov EAX, 5
    case 196
    mov ebx,dword ptr ds:[EDX+0x10]
    mov dword ptr ds:[edi], eBX
    add edi, 4
    mov EAX, 7
    case 6F
    mov EAX, 3
    case 72
    mov EAX, 1
    else
    mov EAX, 0
    pop ebx
    }



    0041DE60: 체크=>
    pushad
    mov ebp, esp
    cmp dword ptr ds:[00659100], 1 //첫 줄이 아닌 경우 돌아간다
    je run to hell:

    MOV ECX,DWORD PTR DS:[ESI+5D450]
    MOV EDX,ECX
    SHL EDX,4
    SUB EDX,ECX
    LEA ECX,[EDX*8+ESI]
    MOV EBX,DWORD PTR DS:[ECX+5D468] //계산된 EBX가 현재 "포인터 스크립트" 위치
    push ecx //[local.1]
    MOV ECX,DWORD PTR DS:[ECX+5D464]
    mov edi, 00659200 // 포인터 배열
    mov EDX, EBX
    loop()
    {
    CALL 포인터 배열 생성
    TEST EAX, EAX
    JZ run to hell:    //return to original code, if return value is zero
    cmp eax, 1
    je start:
    LEA EDX, [EDX+EAX*4]
    }
    run to hell:
    mov esp, ebp
    popad
    retn

    start:
    sub edx, ebx

    mov dword ptr [edi], 0 //포인터 배열 마지막을 00 00 00 00으로 한다.
    mov esi, 00659200
    mov edi, 00659300
    push edx
    loop()
    {
    mov eax, dword ptr ds:[esi]
    TEST EAX, EAX
    JZ collecting done:
    LEA EAX,[EAX*4+ECX]
    //반전 복사 루프
    mov dl, byte ptr ds:[eax]
    cmp dl, FF
    JE 탈출
    not dl
    mov byte ptr ds:[edi], dl
    inc eax
    inc edi
    jmp 루프맨위
    add esi, 4
    }
    collecting done:

    //이 상황에서는 00659300에 원문이 풀로 모여있게 된다. (최대 길이 0x100)
    //여기서 번역을 돌리자.
    mov eax, dword ptr ds:[00659300]
    push 00659300
    CALL 메모리 덮어쓰기 //픽스라인 이용 개행문자: %0A  (한 라인당 길이 한계 0x32, 3라인 초과 시 튕김을 주의)
    mov edx, dword ptr ds:[00659300]
    cmp eax, edx
    je run to hell: //번역이 안된다면 귀환

    mov dword ptr ds:[00659100], 1 // 스크립트 덮어쓰기 플래그 셋

    mov ecx, dword ptr ss:[ebp-4]
    lea eax, [ECX+5D468]
    mov dword ptr ds:[00659104], EAX // "포인터 스크립트"의 포인터 위치 저장
    pop edx
    mov dword ptr ds:[00659108], EDX // 복구할 "포인터 스크립트"의 포인터 값 저장
    mov dword ptr ds:[0065910C], EBX // 덮어쓰기 시작할 "포인터 스크립트" 시작 위치 저장 (백업은 00659400에 0x60 만큼)
    MOV ECX,DWORD PTR DS:[ECX+5D464] 
    mov eax, dword ptr ds:[00659200]
    mov dword ptr ds:[00659110], EAX // "포인터 스크립트"의 시작 값 저장
    LEA EAX,[EAX*4+ECX]
    mov dword ptr ds:[00659114], EAX // 덮어쓰기 시작할 스크립트 시작 위치 저장 (백업은 00659500에 0xC0 만큼)

    mov esi, mov dword ptr ds:[0065910C] //백업1
    mov edi, 00659400
    mov ecx, 18
    rep MOVS DWORD PTR [EDI], DWORD PTR [ESI]

    mov esi, mov dword ptr ds:[00659114] //백업2
    mov edi, 00659500
    mov ecx, 30
    rep MOVS DWORD PTR [EDI], DWORD PTR [ESI]

    xor ebx,ebx
    mov edi, mov dword ptr ds:[00659114]
    mov esi, 00659300

    lea edx, [edi+0xc0]


    #4 inc ebx
    xor ecx, ecx
    #3 mov al, byte ptr ds:[esi+ecx]
    test al, al
    jz #1:
    cmp al, 0a
    je #2:
    not al
    mov byte ptr ds:[edi], al
    inc ecx
    inc edi
    jmp #3
    #2 mov al, ff
    #5 mov byte ptr ds:[edi], al
    inc ecx
    inc edi
    cmp ecx, 40
    jne #5
    inc esi
    cmp ebx, 3
    je #7
    jmp #4

    #1 mov al, ff
    #6 mov byte ptr ds:[edi], al
    inc edi
    cmp edx, edi
    jne #6
    #7 //mov dword ptr ds:[00659118], EBX // 덮어쓴 스크립트 줄 수 저장 (백업은 00659500에 0xC0 만큼)

    mov edi, mov dword ptr ds:[0065910C]
    mov eax, dword ptr ds:[00659110]
    xor ecx,ecx
    #9 inc ecx
    mov edx, 6e
    mov dword ptr ds:[edi], edx
    mov dword ptr ds:[edi+0x4], 0
    mov dword ptr ds:[edi+0x8], 0
    mov dword ptr ds:[edi+0xc], 2
    mov dword ptr ds:[edi+0x10], eax
    inc edx
    cmp ecx, ebx
    jne #8
    add edx, 3
    #8 mov dword ptr ds:[edi+0x14], edx
    mov dword ptr ds:[edi+0x18], 0
    mov dword ptr ds:[edi+0x1c], 0
    add edi, 20
    lea eax, [eax+0x10]
    cmp ecx, 3
    jne #9
    jmp run to hell:



    0041E1D0: 체크=>
    pushad
    mov ebp, esp
    cmp dword ptr ds:[00659100], 1 //덮어쓰지 않은 경우 그냥 간다.
    jne run to hell2:
    mov dword ptr ds:[00659100], 0

    mov edi, mov dword ptr ds:[0065910C] //복원1
    mov esi, 00659400
    mov ecx, 18
    rep MOVS DWORD PTR [EDI], DWORD PTR [ESI]

    mov edi, mov dword ptr ds:[00659114] //복원2
    mov esi, 00659500
    mov ecx, 30
    rep MOVS DWORD PTR [EDI], DWORD PTR [ESI]

    mov EAX, dword ptr ds:[00659104] //"포인터 스크립트" 의 포인터 복원
    mov EDX, dword ptr ds:[00659108]
    mov dword ptr ds:[eax], edx

    run to hell2:
    mov esp, ebp
    popad
    retn

    ------------------------------메모장 end--------------------------------------
  • ?
    nicday1234 2013.04.06 19:13
    전부 싫어하는 류라 NTR이나 능욕쪽이면 모를까.... 순애는 그다지....순애는 좋아하시는분들이
    많아서 도와주실분이 많을거라 저는 패스...
  • ?
    폭우 2013.04.06 19:50
    오오 맨위랑 아래에서 3번째는 미묘하게 rpg 필이나네요.
    아니면뭐..말고. 수고하셧습니다
  • profile
    이드도둑 2013.04.06 20:03
    음 수고 많으셔요~~
  • profile
    一片丹心마시로♡ 2013.04.06 20:11
    중요한건 5월이죠 ㅋㄷㅋㄷㅋ
  • profile
    리드맨 2013.04.07 00:38
    자폰회피기를 익히셨군요 ㅎㅎ
  • profile
    Wales 2013.04.07 01:15
    다 귀찮아...
  • ?
    굴러가는시간 2013.04.07 01:50
    그냥 안하거나
    일본어 배워서 하거나
    ith로 하거나

    아니면 라인 출력하기 전의 전문 후킹하세염

잡담게시판

공지사항을 숙지해주세요.

List of Articles
번호 제목 글쓴이 날짜
공지 아청법에 저촉되는 이미지,글을 올리지 말아주세요. 5 애로앙 2013.08.19
공지 폴라리스 통합 공지사항. -필독- 10 애로앙 2013.03.03
804 구작 재탕 중 ㅇ-ㅇ....에 있습니다. 8 베르세인 2013.10.06
803 군대 참 좋은곳.. 마시로님 군대간다니까 올리네요. 저는 이미 예비군.. 화생방이 젤 힘듭니다...... 하고싶지 않아~~ 괜찮습니다. 죽지는 않으니까요 ^^ (애도...) 9 file 라이 2013.07.02
802 군인이 돌아왔습니다 2 Formyinterest 2017.03.28
801 궁금한게 있는데 코드가 있나없나 물어보는것도 안되면 여기서 무엇을 글싸면서 떠들면 되는건가요? 6 ip124.28 2013.03.04
800 귀미연 가입 어떻게하나요...? 1 escsmile 2014.08.28
799 귀미연 어떻게 가입하나요? 10 Arshake 2013.03.17
798 귀축왕 란스(鬼畜王ランス) 그래픽 한글패치 제작 3 제로의원 2017.05.02
797 그날도, 그들은 떠올렸다. 우리 마시로♡의 사랑스러움♡을…… ♡시로짜응♡ thㅏ랑행♡♡♡♡♡♡♡♡♡♡♡♡ 10 file 一片丹心마시로♡ 2013.05.20
796 그녀X3 애니 완결나왔네요. 09년 이었던가... 그때 첫 출시해서 가히 정액헌터 라는 칭호를 얻고 누키게중에서도 최고의 위치를 선정한 그녀X3 팬디스크 도 내놓을정도로 큰인기몰이를 했는데도 불구하고, 유통업체가 문닫아버리는 바람에 더이... 15 file 반디 2013.05.10
795 그녀x그녀x그녀 진행오류 3 그대에게초전자포 2013.04.30
794 그러고 보니 소니MDR라인업 광고가 새로 떳네요 3 Overw@tch 2013.11.11
793 그러고보니 기본 프로필 이미지가 이전 그대로 처자 이미지군요. 이미 검정 바탕에 물음표를 쓴 이미지는 날아가버렸으니 새 걸로 제작해야 한다는 말인데.... 여전히 기본 이미지가 저를 마음에 들지 않게 하는군요. 이번에는 어떤 걸 해 볼까 생각을 잠깐 해 봤습니다. 잠깐 생각... file 프시쵸 2013.03.11
792 그러고보니 번역게시판이 없어졌네요....... ..................... 11월 29일 발매 예정작인 흩날리는 벛꽃과 소녀의 윤무곡 의 4컷 만화 중 하나... 나머지 6편이있긴한데........ 보는데 나름 다들 귀엽달까 재밌네요 ㅎ 앙상블 작품이 그렇듯. 저기 뛰어난 ... 7 file 베르세인 2013.10.05
791 그러하다 다행히 평소처럼 오늘도 각설탕싸이트에 들어가서 알게 되었다. 그러니 우리는 달력에 케릭터 생일을 표시해 놓는게 좋습니다. 그리고 짤방 11 file 一片丹心마시로♡ 2013.04.12
790 그럼 나도 생존신고 3 새피스트 2014.08.30
789 그분께 올리는 글.............. 더 이상 자세한 설명은 생략한다 저도......... 그렇게 생각해요...... 짧아요......... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ... 94 file 一片丹心마시로♡ 2013.03.26
788 그어어.... 나 살아 있는 것인가... 4 넣기빼기 2013.04.12
787 근처 회선에 AP로 접속하는데 성공했습니다. 6 이계폭격 2013.04.01
786 근친물 추천 좀 부탁드려요~ 9 코바토 2013.04.18
785 근황과 이러저러한 변명거리 에... 일단 요즘 소흘했던게 사실이구 자주글끄적이지 못해서 죄송합니다 뭐 일도하고 여러가지로 바쁘게 지냈...다고 일단 주장하겠습니다 절대로 하단의 이미지들과 제가 요즘 들어오지 못한것과는 관계가 없을꺼... 9 file 애로앙 2013.10.08
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 ... 49 Next
/ 49

Recent Articles

Recent Comment

Logged Members

modified by 애로앙 / in 2013.03