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 제로의 사역마21권 출판 1 Line 2016.02.25
803 제가 ㅇㅊㅂ과 ㅇㄱㅂ의 긍정적인 부분을 평가해보겠습니다 재미있는 드립을 계속 할수 있어요! 드립은 드립이어야지 제맛이지! 남녀평등(?) 19 file 一片丹心마시로♡ 2013.08.19
802 정말 항상 느끼는거지만 미연시 사운드트랙은 왜 하나같이 다 좋은걸까요 ㅠㅠㅠㅠㅠ 얼마 전에 찾은 수평선까지 몇 마일 ost로 수록된 세 곡이랑 잃어버린 미래를 찾아서 세 곡 다 좋아서... 정신만 놓으면 흥얼흥얼거리고있으니.. 이래서... 48 file isni 2013.04.23
801 정말 오랫만에 접속 해보는 군요 이때 까지 어찌 생각해보면 참 정신 없이 살다 이제야 접속을 해보는군요.. 요즘은 거의 온라인 게임도 전부 삭제하고 폰 게임이나 간간히 잡으며 덕질 연명 중 입니다만.. 드디어 근 10년(TVA기준)으로 스트라이크 ... 2 file Line 2016.07.11
800 접속자가 반토막났습니다 헤헤 안그래도 산소호흡기 달고 겨우겨우 연명하던 수준이였는데 호흡기 배터리가 나간듯 16 file 애로앙 2014.02.24
799 접속률이 좋아서 폴라의 부흥인가 했는데 아랄랩이랑 연동되서그런거군요. 13 폭우 2013.10.06
798 점점 추워지네요 바람도 많이 불고 말이죠. 뜨끈한 게 생각나는 요즘입니다. 요즘 보니 찐빵도 팔고 노점에서 붕어빵, 어묵까지 팔더군요. 곧 겨울이 될거야 ㅇㅅㅇ 추운 겨울, 감기 안 걸리도록 조심해야 할 것 같아요. 낮에는 기온... 3 file 프시쵸 2014.10.16
797 전역하고 오니까... 11 베르세인 2013.08.22
796 전역하고 근황글 9 휴이 2013.07.19
795 전여신 제로 카야가 홀리스터프 쓸 때 원래 딜레이 있나요? 유스앤미 2014.05.05
794 전여신 그래픽 한글패치 사용자 자료실에 올라왔음! 디아3 열심히 달리다보니 란스랑 전여신이 나왔더군요[주말에 알았음 ㅎㅎ] 하지만 전 전여신 시리즈를 안해봐서 잘 모르겠는데 귀미연에 글들이 많이 올라오는거 보니까 재밌나보네요 ㅎㅎ 란스는 미령님이 하시는중... 18 file 샤우토 2014.04.29
793 전여신 zero 8시간 플레이 中 3 mimimie 2014.06.09
792 전여신 verita VS 천상의 라데아 8 유스앤미 2014.05.20
791 전국투격 꽤 모은듯합니다 =ㅁ= ....근데 슬슬 질린다고나할까요 롤할때의 발암느낌난다고나할까요... 투명유닛에 ....기습에 잠깐 정신높으면 맘대로 움직이는 아군유닛에...........총포대는 넉벡(공격시 상대를 뒤로 밉니다)가능한녀석에.... 왠... 9 file CelicaSylphil 2014.03.31
790 전국연희가 전연령인것도 아쉬운대 4 코나타짱 2013.12.21
789 전국란스 스크립트 완성도 높은건 없나보네요 유스앤미 2014.01.07
788 저도 핸드폰에 어플이란걸 받고싶다.. 저도 게임을 하고싶습니다.. 흑흑 그치만 이높은 현실의벽 핸드폰 기종은 1년반전의 핸드폰인데 시대는 한5년뒤쳐지는 이느낌은 현재는 아무것도 티스토어를 사용 못하고 버티고 있습니다. ㅠㅠ. 단지 otp와 네이버 ... 9 file 숨어사는자 2013.04.02
787 저도 시작했습니다. ....아, 아니. 딱히 내 얘기 같아서 밀어본건 아니고 (시선 회피) 넵, 여러분의 매지컬 ☆ 휴이쨩 입니다 ;ㅂ;/ 추석때 시골 다녀온 뒤로 참 우여곡절이 많았습니다.... 주로 VPN 을 쓰면 컴퓨터가 꺼진다던가 프록시... 8 file 휴이 2013.09.24
786 저도 생존신고 합니다. 다른 폴라분들 다 무사히 계신가요? 저는 요새 투잡을 하고 있습니다. 낯에 조경일 외에도 고깃집 하시는 삼촌 식당에서 일손이 부족하다 하여 삼촌 식당에서도 일을 하게 돼었는데. 처음에는 주말에만 일을 해주다가... 12 file 반디 2014.04.13
785 저도 간만에 똥을 싸고갑니다. 최근근황은 밐밐님과 트롤빛 향수를 뿌리며 롤을 하고있습니다.(이야 내가 바로 실론즈다!) (저얼대...저어어얼대 게시판이 조용해진이유가 밐밐님이 롤을 하기때문은 아닐거라 믿음) 에... 그래서 그런지 미연시 시... 9 file DarkLuna 2013.10.09
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