<글에 앞서서 주의할 점 사.가.지>
1. 괴수분들이 써주신 쉽고(..?) 재미난 강좌들을 먼저 읽어주세요.
2. 제가 여러가지 시도해가며 스스로 '대략 이런거구나~' 라고 이해한 것들이
태반이기에 실제 지식과는 다를 수 있습니다. (랄까 전부 다를지도...)
3. 이건 꼭 필요한 정보인걸? 은 없습니다.
new! 4. 정확한 명칭이 아닐 수 있습니다. 제가 부르기 편한 걸로 막 진행합니다.
별다른 할말이 없기 때문에,
2편에 이어서 바로 두번째 방법에 대해 알아보도록 하죠.
두번째 방법은 후커형님과 함께 합니다. 편의상 클립후커로 진행합니다.
대상 게임은 가장 최근에 찾아본 피귯 사육제가 되겠습니다.
우선, 게임을 실행 후 클립후커를 붙여줍니다.
(예제 01. 빨간 네모와 녹색 네모 참조)
AGTH 목록(그림의 빨간 네모칸 안의 것들)중에서 대사를 뽑아주는 것을 선택하여 주소를(녹색 네모칸) 봅니다.
그 밑의 TextOutA가 가르키는 주소도 대사를 뽑아주는 곳 입니다만, 우리의 목적을 잊지 맙시다.
대사 두 세줄 뽑기 위해서 찾는 것이기 때문에, 잘 나오는 곳 하나면 충분합니다.
자~ 자~ 조금씩 난이도가 올라가고 있습니다. (...)
저 주소를 이용하기 위해서는 뭐가 필요할까요?
네~ 그렇습니다. 디버거 가문을 불러봅시다.
오늘의 게스트는 올리 디버거씨가 되겠습니다.
게임을 실행 후 올리를 실행하여 붙입시다. File - Attach 를 눌러 게임 실행파일을 잘 찾아 확인.
또는 올리를 실행하여 File - open 을 눌러 게임실행파일을 찾아 실행해 주시면 됩니다.
(게임 설치 폴더가 일어로 되어 있을경우 올리가 못 읽고 에러가 날 수 있습니다.
이럴경우엔 올리를 어플로 실행하여 주시면 됩니다.)
(예제 02. 열거나 혹은 달라 붙거나...)
아아... 너무 친절한 나머지 글의 품격(...)과 흥미도가 내려가는 것 같네요.
원래 이렇게 친절하게 진행할 예정이 아니었는데...
(유르씨 미우삼... 버럭!)
(앗! 무심코 본심이!? 죄성해열... 함만 봐주세열... ;ㅅ; 게삭만은...)
어쨋거나 저쨋거나 계속 나아가 봅시다.
잘 따라 하셨다면 대략 이런 장면이 나올겁니다.
(그림 01. 올리 실행화면. 빨간색 부분과 파란색 부분이 우리가 주로 확인 할 곳입니다.)
네. 파인더 분들이 자주 보시게 될 올리 디버거씨의 조사 보고서 입니다.
어느정도 초보 납치자(혹은 예정자)분들과도 친하게 지낼 수 있는 아랄 디버거씨의 조사 보고서와는
다르게
시작부터 내던져 밟아주고 싶어지는 보고서 입니다.
하지만 저지만~ 우리는 이 불친절한 올리씨의 보고서를 뒤적이며 원하는 정보를 끌어내야 합니다.
우리가 원하는 건 뭐? 납치 장소!! 납치 타이밍!! 그리고 납치 방법!!!
그러나 이것만 보고 납치 방법을 추려내려면 정말 초! 괴수분이셔야 합니다.
(혹은 수많은 작품을 섭렵하신 근성가?)
'대략 이런 패턴이니 바꿔치기는 안먹히겠네?' 라는 걸 보고 알 수 있는 분이라는게 되는거죠...
불안해지나요?
걱정 안하셔도 됩니다. 우리에겐 노력과 열정! 그리고 끈기!!! (사실 이것뿐...)
장소와 타이밍까지만 추려내도 나머지는 여차저차 다 시도해가며 최적의 범죄행위를 이루어
내시면 되는겁니다.
'모든 길은 노가다로 통한다'
옛 현자분께서 남겨주신 이 거룩한 명언에 담긴 땀과 눈물, 그리고 분노를 알게 될 때
우리는 진정 아랄형 범죄자로 거듭 태어나는 겁니다. (???)
이야기가 다른데로 돌아가려 합니다만, 다시 집중해 되돌려봅시다.
우리는 후커형님의 도움으로 대사와 관련되어 있는 듯한 주소를 알아내었고, 올리씨의 힘을 빌려
게임실행파일의 내부 자료를 보게 되었습니다. 자 그럼, 참고할 주소를 쭈욱 따라 올라가봅시다.
47A4F3이었죠?
주
르
륵
~
도착했습니다.
(그림 02. 아 하트를 그리다니... 스스로에게 실망함...
커다란 하늘색 네모칸 부분쪽이 코멘트 부분. 알 필요는 없지만 간간히 도움이 되는 곳)
앗! 녹색의 네모칸 부분 보이시나요?
후커형님의 AGTH 목록중에 저런 영어가 있었드랬죠.
그렇습니다. 저것과 TextOutA 이 두가지 내용이 올리의 코멘트 부분(알아보기 쉽게 나름의 표시를
해둔 곳이라 여깁시다.)에 적힌 곳 근처는 대사나 선택지 혹은 정보창 등 텍스트가 관련된
주소들이라 할 수 있습니다. 다시말하자면 GetText..어쩌구와 TextOutA 이 둘 중 하나가
코멘트 부분에서 보였다면 그곳이 바로 후커의 AGTH에 대사가 잡히는 곳이라는게 되겠죠.
(물론 절대적인 것은 아닙니다만..)
보라색 선쪽에 주목해 봅시다.
허접한 글씨로 '요 간격~♡' (아앜!) 이라고 써있군요...
글쓴이가 어지간히 눈에 띄게 하고 싶었나 봅니다.
저부분은 제가 처음 올리를 사용하여 코드를 찾거나 다른 코드를 참고하여 직접 확인 해 보았을 때
들었던 의문점입니다. 아 말이 이상하군요. 말하자면, 클럽후커의 주소를 따라가던, 대사 추출하여
브레이크를 먹여 보던 어쨋거나 나오는 주소를 따라가보면...!
그림의 47A4F3 처럼 뭔가의 처음부분이 아니라 어느정도 진행된 후의 주소가 걸리는데~
왜 우리가 찾아 올리는 코드의 주소는 47A4F3 가 아니라 47A4D0, 즉 그 부근의 시작점이 되는걸까?
라는 의문이었습니다.
사실 47A4F3 나 47A4D0 나 인자까지 찾아서 넣어보면 똑같은 경우(결과를 뜻함)가 거의 90% 이상이거든요.
잡설이 길었구, 제가 내린 결론을 말하자면 첫빠따가 좋기 때문입니다.
(...)
농담이구요.
언젠가 배웠던 광통신인지 묵통신인지에 대한 내용을 짜집기 해 꺼내봅시다...(기억이 가물가물)
'A에서 정보를 받아들이고 B로 보냅니다.'
A에서 B로 가는 도중에 수많은 난관을 거쳐 빛(정보)은 점점 약해집니다. 그러다보면 원래
가졌던 정보를 조금씩 소실하게 되죠. 다른 예를 들어볼까요?
용사가 마왕하고 싸우러 갑니다.
가는 도중 많은 적을 만나 체력을 소비하게 되겠죠...
(물론 빛은 중간에 보급지점이나 휴식지점을 거쳐 회복할테고, 용사는 힐러를 덮쳐(?) 회복할테죠)
뭔가 요상한 예를 들어 이해가 더 어렵겠지만...
결국은 보라색 선, 즉, 47A4D0 에서 47A4F3 까지 가는 도중!
처음 47A4D0 에서 받아들여 A라는 곳에 저장한 대사가 프로그램이 진행되면서 이리저리 불려다니다가
47A4F3에 도달했을때에는 C라는 곳에 저장되게 된다고 칩시다.(이리저리 바뀌어가며 저장되는 곳이 인자가 되겠죠)
보통은 저렇게 멀지 않고 가까운 거리일 경우라면 잃어버린 대사가 없을 가능성이 크지만,
이곳저곳 많은 곳을 거치다보면 일부분을 까먹게 될 수 있는겁니다. A에서 C로 바뀌어 가는동안 일부분을
잊어버릴 가능성이 있다는 거죠.
(덤프로는 제대로 나오는데 주소랑 인자 적고 넣어보면 뭔가 앞에 몇자를 빼먹는게 이런 경우가 되겠죠....
..랄까, 이부분은 간단히 이해하기 위해서 저렇게 해봤지만 전혀 다른 이야기가 될지도 모르겠네요. 4편에서
보충합니다.)
아 저 이상한 말과 결론을 내리고 싶어서 원래 목적을 잊고 있었네요.
여러분 정신차리세요! (...)
죄송합니다. 제가 정신차릴게요.
다시 돌아가서, 올리씨의 보고서상에서 F9를 눌러 게임을 실행한 후 대사가 나오는 부분까지 가서
올리로 브레이크를 먹인 후 대사를 진행해 봅시다. 만약 후커형님의 도움을 받아 얻어낸 저 주소가
한글자 코드가 아니라 다 출력해주는 부분이라면...
이 상황에서 이미 범죄계획서는 완성되게 될 겁니다.
47A4D0, 47A4F3 둘 중 어느곳이나 상관은 없지만 저는 이미 이곳들이 한글자 코드임을 알고 있고,
또 후커형님께서 갈켜주신 47A4F3가 브레이크 먹였을 시 바로 반응(?)이 올 것이 틀림없기에,
47A4F3에서 브레이크를 걸어주었습니다.
(예제 03. 파란색 네모칸 안의 변화를 주목합시다. 빨간색 밑줄 부분이 눈에 띄는군요.
이 부분에 대사가 출력된 내용과 비슷한 길이의 괴랄어 혹은 일어가 적혀있다면...
한방에 끝나는 겁니다.)
브레이크 건 후 대사를 진행시켜 보자~ 변화가 눈에 띕니다.
예제 3의 빨간 밑줄 부분이 F9를 눌러 한번씩 진행할 때마다 한글자씩 바뀌는걸 알 수 있습니다.
(그림만으로는 알수없습니다.)
이렇게 해서 납치 타이밍이 ESI 와 19CFA64 라는 것을 알게 되었습니다.
여기서 간단 팁. ESI는 그렇다고 치지만... 저 19CFA64를 어떻게 써야될까요?
그림의 아래쪽 파란 네모칸 쪽에서 마우스 우클릭을 해봅시다.
(그림 03. 브레이크를 해제한 후 스샷을 찍었더니 좀 변했습니다만... 아무튼 요런식으로~)
했더니...
(예제 04. 쨔잔!!! (쨔잔이라니.... 품격 Down - ing))
알아보기 쉽게 되었군요. 근데, 어라라?
저기 ESP+2C 위에 ESP-C 부분도 똑같은 글자 하나를 품고 있군요.
(대사를 진행해버려 글자는 달라졌지만 신경쓰지 말아주세요. ^^;)
저부분 목록을 쭈욱 살펴보시면 같은 내용을 품은 곳이 또 있을 법도 하네요.
하지만 어차피 같은거라면 하나면 충분! 마이너스가 붙은 건 왠지 마이너 하니까 (...)
플러스가 붙은 ESP+2C로 정합시다
다시 정리하면 이렇게 됩니다.
납치장소(어드레스) |
납치타이밍(번역인자) |
납치방법(번역방법) |
47A4F3 |
ESI, [ESP+2C] |
인술, 세뇌 택일 ?? |
장소와 타이밍을 알아냈으니, 이제 방법을 알아내보자... 가 아니죠.
2편 강좌에서 보신 것처럼 지금 우리의 목적은 대사를 추출하는 것(...)이고, 추출만 하는데에는
방법에 연연하지 않아도 되었었죠. 2편 강좌를 참고하여 덤프창을 띄워주고, 대사의 Hex코드를
원하는 만큼 뽑아가시면 됩니다.
중간에 딴소리가 많아서 괜히 글만 길어졌군요.
결국 이 강좌의 주제는 대사를 추출하는 두번째 방법이 되겠네요. 도움이 되셨으면 좋겠습니다.
자, 지금까지 강좌의 내용을 종합하고 다음강좌에 대해 생각해 봅시다.
1편에서 우리는 초보 범죄자가 가져야 할 기본적인 소양에 대해 배웠습니다. (...)
2편에서는 초보티를 떼어내기 위해 거쳐야 하는 대사 추출법에 대해 배웠습니다.
그리고 3편에서는 2편에 이어 대사 추출법에 대해 또다시 배워보았습니다.
사실 이 3편의 내용이 바로 '올리로 코드찾기' 로 이어지는 내용입니다. 후커로 알아낸 주소가
대사에게로 가는 직빵 주소가 될 확률이 어느정도 있기 때문이죠.
(제가 찾은 마왕군2의 아이템 관련 텍스트는 이 방법으로 찾았습니다.)
3편에서 잡설이 길어진 것은 다음 내용에서 이어서 써먹기 위해서였습니다..만;
뭔가 알쏭딸송 하게 되었네요. 여러분들의 머리위에 뜰 퀘스천 마크가 눈에 보이는 듯 합니다.
4편에 쓸 내용중 일부를 3편 잡설에서 요상스레 까발려 버린 바람에, 4편 내용 구성에 차질이
생겨버릴 듯 하네요. 아마 4편은 어느정도 아는 분들에게는 아무짝에도 쓸모없을 강좌가 될 것
같습니다. (...)
어쨋거나 저쨋거나~
이번 글은 여기까지 입니다.
품위와 개그성이 떨어져 슬픕니다. 다음편은 스샷을 팍 줄이고 되도록 많이 나불대 보겠습니다. (....)
아직 코드 찾기에 대해 잘 모르시는 분들의 이해를 돕고자 하는 강좌이지만.....
제목대로의 결과를 낼 듯 하군요. (...)
(이게 진정한 결론)
그럼, 여러분! 마타네~♡
수고하셨습니다.