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
188 응...? ③ 히키코모리...........???? - _-........OTL 아놔.....이것은 무엇인가..... Lv.3은 히키코모리였는가..........젠장..;; 이런.......낵아........낵아.....낵아!!!!!!!!!!!!!!!!!!!!!!! 히키코모리라니!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 하.........이렇게 나는 레... 21 file KoNaTa 2013.04.08
187 아니요즘은뭔 모에죽이기가 대세입니까? 라이트노벨에서 히로인이죽는 경우가 요즘 부쩍보입니다. 하하 오늘 새벽1시에 마무리지은소설이 마지막에 히로인죽어서 가벼운 멘붕이... 망할작가 4권에서 안살려내면 허허 1권 도입부에 히로인 죽은 삽화넣어놓고... 11 file 폭우 2013.04.08
186 [본문 삭제] . 17 file 계단 2013.04.08
185 여러분 오랫만에 운동을하는데 무척이나 잘된다면.. 5 폭우 2013.04.07
184 오랫만에 오니 뭔가 많이 바뀌었네요 3 meltice 2013.04.07
183 내여귀 2기가 시작했다!!! 현재 내 심정0_0 아 이번엔 저번처럼 막판에 자폭만 안했으면 좋을텐데 늅늅 ps1. before after 아 잔인한 세월의 흐름이여.[어이] ps2.왠지 이러고 보니 본문보다 사족이 더 길어 보인다....신경쓰면 지는거[도주] 24 file 리카 2013.04.07
182 미연시 추천 좀 해주세요~~ 12 Asuna 2013.04.07
181 신선해 보이는 게임을 해봤습니다. 9 굴러가는시간 2013.04.06
180 아..이런 젠장할..ㅠㅠㅠㅠ 화앨2!!!!!!!!!!!!!!!!!!!!!! 9 KoNaTa 2013.04.06
179 오랜만 입니다 닉데이 입니다 3 nicday1234 2013.04.06
» (제거중...) (제거중...) 15 file 자본주의자 2013.04.06
177 어제인가.. 지난번에는 비가 왔었더라고요. 비가 오면서 주위 지인들이 감기몸살이라던가 장염같은 거라던가 하나 둘 시름 시름 아프기 시작하네요; 저도 어제는 배가 아프더군요ㅠㅠ.. 폴라리스 여러분들도 건강 조심하세요. 오늘은 머리도 식힐 겸 오랜만에 ... 9 file 시오텐시 2013.04.06
176 사쿠라장 요즘에 다시 보기 시작했는데 자막이 이 정도...뭔가 조금 개그 자막... 이 이외에는 자막을 못 찾아서 이 자막을 봤는데.... 말이 참 막나가네요 뭐랄까 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이런것도 뭔가 새로운 느낌이 들어서 새롭긴한데 뭐랄까 모 사이트의 ... 16 file Line 2013.04.06
175 나의 첫 오덕 시리즈들. 최초로 빌린 만화책 최초로 산 만화책 강철의 연금술사 최초로 산 라이트 노벨 스즈미야 하루히 시리즈 처음으로 본 애니 럭키스타 처음으로한 미연시 둥지짓는 드래곤 이야 이렇네요.. 뭐랄까 새삼 생각하니까 다생... 10 file 폭우 2013.04.05
174 대 소금천사님 전용병기짤-혐짤방개설- 폴라리스 혐짤 잡담방을 선언합니다! 여러분의 혐짤은 얼마나 약이 짙은지...! 약한잔 두잔... 세잔...? 어느일이 벌어져도 이상할거라 생각함...ㅇㅅ 13 file DarkLuna 2013.04.05
173 음 4월 신작애니들 나오기 시작했군요 9 KoNaTa 2013.04.05
172 4~10월 아청물 집중단속기간/6월부터 아청법강화 14 file Conan 2013.04.05
171 하하하하하하 역시 츤데레가 최고!!!! 이야 지속적인 츤을보이다가 마지막에 이거누구야?! 싶을정도의 데레를보이는게 정말참을수없네요.. 최고야~@!#@!# 이래서 츤데레를 좋아하지않을수가없네 란스10에서 시즈카도 데레데레하게 안될라나~!~ 하하하하 소... 12 file 폭우 2013.04.05
170 알바 뛰는 마왕 봤습니다 중2병 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 아 정말 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ1화가 무슨 최종화 수준 으잌ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ... 4 file Line 2013.04.05
169 2분기 애니 정리 15 Line 2013.04.04
Board Pagination Prev 1 ... 34 35 36 37 38 39 40 41 42 43 44 45 ... 49 Next
/ 49

Recent Articles

Recent Comment

Logged Members

modified by 애로앙 / in 2013.03