강좌/수정법

4. 헥스 심화과정

갯 힝 2017. 2. 27. 15:58

이 강좌에서 제거할 프로텍트는 SProtect 이며, 어느정도 말을 이해하시려면


http://cheatmap.tistory.com/entry/1-%ED%97%A5%EC%8A%A4-%ED%91%B8%EB%8A%94%EB%B0%A9%EB%B2%95-Spazzlar


3편을 보고 오시면 될듯합니다.


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


일단 기존의 강좌는 어느정도 잊으라고 말씀드리고 싶습니다.


구체적으로 말씀드리자면 옛날에 프로텍트라는 개념은 약간 간단했습니다.


가짜 MPQ, 햇갈리게 하는 BN3, 진짜 MPQ 뭐 이런식으로 되있었는데


구 버전에 쓴 강좌를 보면 전부다 말은 되는데 지금의 제 입장에서 보면 약간 어이가없다고해야하나?


뭐 틀렸다는 건 아닙니다. 하지만 조금 문제가 있다 이겁니다.


일단.. 제가 알기쉽게 명칭을 몇개 붙히겠습니다.


1. 1A의 법칙 - (MPQ 다음 꼭 1A가 나와야한다. 만약 1A가 아닐 경우 그 헤더는 가짜)


       


이경우 0x4D50511A (MPQ.) 진짜 MPQ이자 헤더는 이부분이죠.


2. 헤더는 0x20 (32) 법칙

  (1) 헤더가 뭔지는 짧고 쉬운 단어로 설명해드릴 수 없습니다.

      하지만 몇가지만 말하자면 0x20은 16진수고 32는 10진수


       


      즉, 4D부터 제일끝에있는 00 까지 하나씩 세아려 보시면 알겠지만 32개입니다.

      워크는 헤더가 32를 벗어날 수가 없습니다. 무조건 32개의 0~0xFF로 이루어져있습니다.


뭐..솔직히 헤더크기 관련해서는 아직 방지가 나오지 않아서 알아도 되고 몰라도 됩니다.


3. 어떠한 데이터도 맵의 크기를 넘을 수 없는 법칙

이건 좀 애매한데.. 예를들어 맵을 열어볼 수 있는 프로그램(라딕,WINMPQ 등)이 해당 맵을 열기 위해서 필수인 조건이 몇가지가 있는데

그것이 바로 이 해쉬테이블(HashTable)의 크기와 블록테이블(BlockTable)의 크기입니다.

-> 뒤에 HashTable과 BlockTable에 관한 설명을 하겠습니다.


이부분은 좀 설명을 해드려야 할 것 같네요.

기본적으로 해쉬테이블과 블록테이블을 가끔 보다보면.. 말도안되는 크기가 있습니다.


근데 워크는 이것을 잘 읽어옵니다. 오류를 따로 처리하거나 밑에까지 내려가지않고 찾아버리거나.. 뭐 자세한 사항은 모르겠습니다만 일단 워크에서는 문제가 없습니다.


근데 위에서 말했듯이 프로그램이 해당 맵을 열기 위해서는 크기를 맞춰줘야합니다. (최신 라딕버전 제외)

최신라딕버전은 그딴거 상관없이 다 열어버리는데 문제는 연다고 해서 해당 맵을 수정할 수 있는 것은 아니죠 ㅎㅎ


제가 예전에 만든 GTProtect (바람의나라에 걸려있는 프로텍트) 가 이것을 어느정도 고려해서 만든 프로텍트입니다.


//////////////////////////////////////////////////////////////////////////


일단 당장 만들어야 하는 법칙은 이렇게 3개가 있구요.


강좌 쓰다보면 제가 도중에 생각나는 법칙을 끼어넣을 겁니다. 그러면 갯수가 계속해서 늘어날겁니다.

'강좌 > 수정법' 카테고리의 다른 글

8. Sprotect Deprotect feat.SSProtect  (12) 2017.06.21
3. 헥스 푸는방법 - Spazzlar  (27) 2015.03.09
2. 맵 수정 시작  (69) 2015.01.06
1. 맵 수정 시작하기 전  (9) 2015.01.06