파란거 좋아하는 64개짜리 오타쿠들에게 작은 희망 강좌

2010/01/13 20:23
'파란거 약속' 이라는 게임이 있다고 한다. 난 잘 모르겠지만 무진장 인기가 있는 모양인데..

64개 짜리 OS를 쓰는 사람은 게임이 돌아가지 않는다... 짧은 구글링으로 수복가능하나 한글패치 프로그램이 원본 파일이 잘못됐다고 뱉어낸다. 64bit OS에서는 쌩으로는 돌아가지 않기 때문에 원본 코드를 수정하는데 있어서 로더가 손상된 프로그램이라고 이야기 하고 무작정 꺼버리는 것.

이로 인해 이 게임 하나때문에 32비트 OS를 설치 할 수는 없잖은가.. 이 문제로 울고 있을 일부 오타쿠들을 위해 이 강좌를 공개하기로 마음먹었다.

하지만 굉장히 간단하므로 강좌라고 하기도 어렵다만.. 작은 디버깅조차 불가능한 컴맹들에게 이 글을 받친다.

참고로 제작한 곳에서는 이 행위를 통해 어떤 서포트를 해 주지 않겠다고 했고, 나도 무슨 일이 생기던 책임지지 않겠다. 하지만 난 잘 되더라. 문제가 생기면 니들이 해결해라. 난 컴맹이라 컴터 켤줄도 몰름..

본인은 첫 페이지만 해보고 덕스러움의 압박에 바로 게임을 종료했으니 취향이 알맞은 오타쿠들은 즐겁게 즐겨주길 바라. 게임이 되기만 할 뿐 어느 부분에서 에러가 나는지는 알 수 없다. 이에 대해서도 따로 언급 할 생각도 없으니 어느부분에서 뭐가 어떻게 되요 따위의 이야기는 삼가도록. 난 되게만 했을 뿐 완벽구동하게 되게 한다고 한 적은 없다.

디버깅 작업은 본인이 직접 연구..랄것도 없지만 알아내서 해 본 것이므로 어디에서 한거 베꼈니 뭐라니 이상한 소리 할거면 Ctrl+W추천

----------------

먼저 작업 전에 작업 도구는 챙겨야 할테니 작업 도구를 소개하겠다.

1. 당근 : HEX코드 수정 프로그램이다 ( http://www.winapi.co.kr/project/dangeun/Dangeun122.zip )
2. OllyDbg : 디버깅 프로그램.. 아마 이 강좌를 따라할 사람은 이 프로그램을 이 작업 외에는 쓸 일이 없을 터이니 작업 후에는 삭제하는것을 추천. ( http://www.ollydbg.de/odbg110.zip )

첫번째 작업 당근으로 두 파일을 열어서 수정을 해 준다. 참고로 게임의 이름이 될 법한 노골적인 프로그램 이름은 과감하게 삭제했으므로 이 점 당부 바라.

초보들을 위한 자세한 수정 방법.

작업도구 1번 파일인 당근을 다운로드 받고 실행파일을 실행한다.
텅 빈 화면이 나오는데 게임 폴더에 존재하는 AlphaCheck.exe 를 드래그하여 당근 프로그램 내 빈 공간에 드래그하면 저런 화면이 나오는데 왼쪽에 적힌 오프셋을 스크롤을 굴려가며 찾아서 오른쪽의 내용을 원본을 참고하며 수정한다. 수정할 프로그램은 AlphaCheck.exe 와 A로 시작하는 게임 실행파일이다.

사용자 삽입 이미지

여기까지는 이미 제대로 공개가 된 내용이다. 하지만 이렇게하면 한글판으로 즐길 수 없게 된다. 이렇게 코드를 수정해놨으니 정상 파일이라고는 로더가 생각을 못 하고 '잘못 된 파일'이라며 당신을 압박시킬 것이니 이제 이 작업을 디버깅을 통해 제거하도록 하자.
사용자 삽입 이미지

이제 이 대상을 제거해야만 한다.


작업도구 2를 다운로드 받고 ollydbg.exe를 실행하면 졸라 복잡한 화면이 나온다. 다 몰라도 되니까 내가 하는 대로만 따라하도록.

사족이지만 졸라 간단하게 할 수도 있는데 수정된 코드를 싣는 것은 왠지 양심에 찔려서*^^*

ollydbg를 실행 한 다음에 비어있는 화면에서 게임 파일이 아닌 "로더 파일"인 "A...뭐시기..L뭐시기.."을 불러온다. 로더 파일에서 에러가 나니까 로더를 수정해야한다! 괜히 게임 실행파일 넣어놓고 삽질하는 불상사는 없도록.

사용자 삽입 이미지

이런 화면이 나오는데.. 만약 제일 덩치 큰 화면의 제목표시줄이 로더 파일이름이 아니고 ntdll이라면 위에 E를 눌러본다.
그럼 저 스크린샷 맨 밑에 보이는 Executable modules가 나오는데 여기에서 로더 파일을 더블클릭 해 주자.

사용자 삽입 이미지
그 큰 화면의 빈 공간에 오른쪽 버튼을 누르면 메뉴가 나오는데 여기에서 Search for 항목에 "All refrenced strings"를 선택한다.

그럼 밑의 스크린샷처럼 요상한 깨진 글자들이 나오는데 아까 거기서 에러 메세지랑 비슷해 보이는 녀석을 찾자.. 그렇게 힘들지는 않다. 문제의 소지가 있어 잘 안보이게 처리했지만 대충 저런 모양이다.

깨져서 잘 안보이겠지만 듬성듬성 보이는 단어로도 이거구나 하는 것을 충분히 알 수 있을테니.. 만약 찾았다면 이 녀석을 삑사리를 조심하고 더블클릭을 하도록 한다.

사용자 삽입 이미지

MSN메세지는 과감하게 무시하고 위를 보면 저 문자열을 출력하는 부분을 찾을 수 있다.

요약하자면 다른 부분에서 로더에 존재하는 게임 실행파일과 현재 존재하는 게임 실행파일과 대조해서 아니라면 이 부분으로 와서 메세지를 출력하게 하는 모양이다.

우리는 당연히 원본을 훼손시켰기에 이 부분으로 들어가는 것이고 에러메세지를 출력한 뒤 자동으로 로더가 종료된다.

그 부분을 비교하는 곳이 아까 더블클릭해서 나온 곳이 아니라 스크린샷에 표시 된 것 처럼 JE로 시작되는 부분인데 JE는 비교 결과가 같을 때 해당 부분으로 쩜프~!한다는 소리다.

짜증나니까 무시하는 명령어로 로더를 수정하자..

JE..부분을 더블클릭하면 요런 화면이 나온다.

사용자 삽입 이미지

그리고 파일 이름을 마음에 드는 이름으로 바꾸면 끝.

건의, 수정 안받음.

관계자인데 지워주세요 받음.

raziel 분류없음

2010/01/13 20:23 2010/01/13 20:23
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다