글을 쓴다 해도 누가 볼지는 모르겠지만 누군가 필요할 때 보러와주겠죠. -_-;
이건 단순히 한글 띄우기 작업 글이지, ASSEM 강좌가 아닙니다.
----------------------------------------------------------------------------------------------------------------
저번 글에서 'CREATEFONTA' 함수를 불러오는 주소를 찾아 그 위에 있는 PUSH 80 -> PUSH 81로
수정하는 작업을 했지만 한글은 전혀 나오지 않았습니다.
왜 그런지는 제 머리로는 모르기 때문에 검색을 해본 결과(-_-)
전각, 반각과 관련있는 글 (제 글에서는 통칭 '위의 글')
위의 글을 찾게 됩니다.
그러니까 결국은 지금의 직전신장전은 한글을 1Byte로 쪼개서 반각으로 인식한다는 소리입니다.
그러면 작업을 위해 ollydbg로 ekd4.exe를 열어봅시다.
그리고 Ctrl + F를 누릅니다.
'cmp eax, 9f' 로 검색해봅시다. ('cmp eax, 9f' 로 검색할 시 한번에 검색됩니다.)
Entire block를 체크할 시 맨 위에서부터 검색하고, 체크 안할 시 선택된 주소부터 검색합니다.
"저 위의 글에서는 cmp al, 9f로 되어 있는데 왜 eax로 하냐" 라는 분이 계실 것 같은데요.
직접 검색해보세요. 안 나옵니다. 그래서 eax로 검색해보니 검색돼서...
CMP EAX, 9F 로 검색하셨으면 위의 스샷과 같이 잘 찾았을겁니다.
이제 위의 글과 같이 명령어를 수정합시다.
명령어 수정 방법은 '직전신장전 한글 띄우기 작업 - 1' 에서 설명했습니다.
한번 더 설명하자면...
수정해야될 명령어는 CMP EAX, 9F 와 CMP EAX, E0 입니다.
그럼 그 명령어를 선택하고 Space Bar 를 누릅니다. 혹은 오른쪽 마우스 -> Assemble 을 선택합니다.
그러면 창이 하나 뜨는데, 그 창에 적혀있는 Text를 수정하면 됩니다.
CMP EAX, 9F -> CMP EAX, 0C8, CMP EAX, 0E0 -> CMP EAX, 0A1 로 수정합니다.
아, 명령어 수정하실 때 A0 ~ FF 의 숫자는 반드시 앞에 '0' 을 붙이셔야합니다.
이게 끝이 아닙니다. 하나 더 남아 있습니다.
이번엔 Ctrl + F 를 눌러 검색 창을 띄우고 'add edx, 161' 을 검색해봅시다.
뭐 이렇게 찾아갈텐데요.
ADD EDX, 0E1 -> ADD EDX, 161, ADD EDX, 161 -> ADD EDX, 0E1 로 수정해줍시다.
수정 다 한 다음에는 반드시 저장을 해줍시다.
저장 하는 방법도 역시 '직전신장전 한글 띄우기 작업 - 1' 에서 설명했습니다.
그렇기 때문에 따로 설명하지 않겠습니다.
저장 한 다음, exe 파일을 실행시키면~
그러면 이 부분도 수정해봅시다.
주소 상으로는 '13b' 입니다. '여기도 한글 테스트' 라고 적고 저장했습니다.
한번 실행해보겠습니다~
엇, 한글은 잘 나오는데 이상하게 공백은 출력이 안 되는 것 같군요...;
분명히 '한글 테스트 ' 라고 적은 곳은 공백이 잘 출력 됐는데...;
해결해야 할 문제가 또 생겼군요.... -_-;
'직전신장전 한글 띄우기 작업 - 3' 에서 뵈요~
이건 단순히 한글 띄우기 작업 글이지, ASSEM 강좌가 아닙니다.
----------------------------------------------------------------------------------------------------------------
저번 글에서 'CREATEFONTA' 함수를 불러오는 주소를 찾아 그 위에 있는 PUSH 80 -> PUSH 81로
수정하는 작업을 했지만 한글은 전혀 나오지 않았습니다.
왜 그런지는 제 머리로는 모르기 때문에 검색을 해본 결과(-_-)
전각, 반각과 관련있는 글 (제 글에서는 통칭 '위의 글')
위의 글을 찾게 됩니다.
그러니까 결국은 지금의 직전신장전은 한글을 1Byte로 쪼개서 반각으로 인식한다는 소리입니다.
그러면 작업을 위해 ollydbg로 ekd4.exe를 열어봅시다.
그리고 Ctrl + F를 누릅니다.
'cmp eax, 9f' 로 검색해봅시다. ('cmp eax, 9f' 로 검색할 시 한번에 검색됩니다.)
Entire block를 체크할 시 맨 위에서부터 검색하고, 체크 안할 시 선택된 주소부터 검색합니다.
"저 위의 글에서는 cmp al, 9f로 되어 있는데 왜 eax로 하냐" 라는 분이 계실 것 같은데요.
직접 검색해보세요. 안 나옵니다. 그래서 eax로 검색해보니 검색돼서...
CMP EAX, 9F 로 검색하셨으면 위의 스샷과 같이 잘 찾았을겁니다.
이제 위의 글과 같이 명령어를 수정합시다.
명령어 수정 방법은 '직전신장전 한글 띄우기 작업 - 1' 에서 설명했습니다.
한번 더 설명하자면...
수정해야될 명령어는 CMP EAX, 9F 와 CMP EAX, E0 입니다.
그럼 그 명령어를 선택하고 Space Bar 를 누릅니다. 혹은 오른쪽 마우스 -> Assemble 을 선택합니다.
그러면 창이 하나 뜨는데, 그 창에 적혀있는 Text를 수정하면 됩니다.
CMP EAX, 9F -> CMP EAX, 0C8, CMP EAX, 0E0 -> CMP EAX, 0A1 로 수정합니다.
아, 명령어 수정하실 때 A0 ~ FF 의 숫자는 반드시 앞에 '0' 을 붙이셔야합니다.
이게 끝이 아닙니다. 하나 더 남아 있습니다.
이번엔 Ctrl + F 를 눌러 검색 창을 띄우고 'add edx, 161' 을 검색해봅시다.
뭐 이렇게 찾아갈텐데요.
ADD EDX, 0E1 -> ADD EDX, 161, ADD EDX, 161 -> ADD EDX, 0E1 로 수정해줍시다.
수정 다 한 다음에는 반드시 저장을 해줍시다.
저장 하는 방법도 역시 '직전신장전 한글 띄우기 작업 - 1' 에서 설명했습니다.
그렇기 때문에 따로 설명하지 않겠습니다.
저장 한 다음, exe 파일을 실행시키면~
그러면 이 부분도 수정해봅시다.
주소 상으로는 '13b' 입니다. '여기도 한글 테스트' 라고 적고 저장했습니다.
한번 실행해보겠습니다~
엇, 한글은 잘 나오는데 이상하게 공백은 출력이 안 되는 것 같군요...;
분명히 '한글 테스트 ' 라고 적은 곳은 공백이 잘 출력 됐는데...;
해결해야 할 문제가 또 생겼군요.... -_-;
'직전신장전 한글 띄우기 작업 - 3' 에서 뵈요~
'게임 한글화 > 직전신장전' 카테고리의 다른 글
직전신장전 한글 띄우기 작업 - 6 (4) | 2010.11.12 |
---|---|
직전신장전 한글 띄우기 작업 - 5 (2) | 2010.11.12 |
직전신장전 한글 띄우기 작업 - 4 (0) | 2010.11.12 |
직전신장전 한글 띄우기 작업 - 3 (0) | 2010.11.12 |
직전신장전 한글 띄우기 작업 - 1 (3) | 2010.11.12 |