본문 바로가기
심심풀이/기타

폴더플러스 한글자 검색 제한 패치 강좌

by 백룡화검 2008. 7. 2.

안녕하세요예상외로 폴더플러스 검색어 패치 강좌에 반응들이 좋으셔서 이번에는 한글자 검색어 패치를 해보도록하겠습니다이번에도 자세한 부가 설명없이 "무조건 따라하기 형식"으로 진행토록 합니다.

 

( 다음강좌는 두가지의 패치를 놓고 이론을 공부해보도록 하겠습니다.  "한글자" 요청이 많이 들어와서 먼저 올립니다. 꾸우벅)

 

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

 

시작하기에 앞서 assembly 기본 명령어 몇가지만 소개하도록 하겠습니다.

 

JMP xxxx  - JUMP 명령어는 "xxxx" 주소로 건너뛰게하는 명령어입니다.

 

NOP - NO OPERATION  명령어는 말그대로 아무것도 하지않는 명령어입니다.  ( 아무것도 하지않는 명령어가 필요한지는 밑에 나옵니다)

 

CMP a, b - COMPARE a b 값을 비교하는 명령어 입니다.

 

JE xxxx - JUMP IF EQUAL 명령어는 앞의 CMP 같은 비교문구의 값이 같다면 JUMP 하라는 명령어입니다) a 1이고 b 1 이면 JUMP 하고, 아니면 하지않습니다.

 

JNZ xxxx - JUMP IF NOT ZERO 명령어는 JE 반대 입니다.  a b 값이 틀리면 JUMP 하라는 명령어 입니다) a 1이고 b 2 이면 JUMP 하게 됩니다.

 

이제 시작해볼까요?

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

 

** 앞에서는 한단계씩 그림설명이 있었지만, 이제부터는 생략합니다. ***

 

1) Olly FolderPlus Browser4.exe 열어줍니다.

 

2) 전에 "금지된" 검색했던 방식으로 이번에는 "이상 이어야" 검색해봅니다.

왼쪽 하단부에 오른쪽 마우스 클릭

Search for >  Binary String > ASCII 칸에 "이상 이어야" 입력

 

3) "한글 최소 2글자 xxxxxxx" 모두 선택한후, Find references 클릭합니다

 

clip_image002

 

4) 이번에는 우리가 검색한 곳을 reference 하는곳이 2군데나 되는군요두곳의 주소를 적어놓습니다아마도 두군데 모두를 손봐야할껍니다우선 첫번째 주소로 가보도록 하겠습니다첫번째 주소 선택후 더블클릭을 합니다.

아래의 주소로 떨어집니다.

clip_image002[5]

 

구조가 저번의 검색어 금지 패치때와는 사뭇 다릅니다위를 쭈욱 훌터봐도 저번처럼 간단히 비교후 점프하라는 이런 문구가 없네요어떻게 해야될까요?

 

아까 Binary string reference 알아봤듯, 이번에는 해당주소를 reference 하는곳을 알아보도록 하죠.

 

해당주소 클릭후 오른쪽 마우스 클릭

Find references to > Selected Command  선택합니다.

 

 

5) 이번에도 두개의 주소가 떴네요다시 찾기 귀찮으시면 두개의 주소를 적습니다.

저는 아래처럼 적었습니다.

"0041AC76 - 오류 메세지"

"00419F13 & 00419F1F - 오류 메세지 reference"

 

중요한 주소는 적어두시는것이 편리합니다.

 

6) 이제 reference 첫번째 주소로 가봅니다

 

clip_image002[7]

 

위에 떨어졌습니다아까 적어놓은 다른곳도 바로 밑에 있군요수고를 덜었네요.

코드를 보면

 

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

00419F03   |.  6A FF             PUSH -1
00419F05   |.  E8 D4840F00       CALL <JMP.&MFC42.#5572>
00419F0A   |.  8B4C24 14         MOV ECX,DWORD PTR SS:[ESP+14]
00419F0E   |.  8B41 F8           MOV EAX,DWORD PTR DS:[ECX-8]
00419F11   |. 
85C0              TEST EAX,EAX <---이곳에서 특정값을 비교후 (CMP 거의 같은기능입니다)
00419F13       0F84 5D0D0000     JE FolderPl.0041AC76 <--
만약에 두개의 값이 일치하면 에러메세지쪽으로 점프를 하는군요
00419F19   |.  8A4424 13         MOV AL,BYTE PTR SS:[ESP+13]
00419F1D   |.  84C0              TEST AL,AL <--
이곳에서도 특정값을 비교후
00419F1F   |.  0F85 510D0000     JNZ FolderPl.0041AC76 <--
값이 틀리면 점프를 하는군요

00419F25   |.  8B4424 40         MOV EAX,DWORD PTR SS:[ESP+40]
00419F29   |. 
BE 01000000       MOV ESI,1

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

 

그럼 혹시 두개의 명령어를 반대로 바꾸면 한글자도 검색이 될까요

JE JNZ 바꾸고, JNZ JE 바꿔주면 됩니다. 하지만 구지 반대 명령어를 써주지않아도,

그냥 무조건 에러메세지가 나오는 주소 (0041AC76) 으로만 점프하지않게하면 되지않을까요?

그렇게 할려면 간단하게 JE JNZ NOP 시키면 됩니다그럼 아무것도 하지않으니,

점프가 되지않을껍니다.

 

(저번 금지어 패치때는 억지로 점프하게 만들었습니다만, 이번에는 반대로 점프를 하지않도록

만들겠습니다.)

 

7) JE xxxx 이곳을 더블클릭한후, 모두 지우고 NOP 타입한후 Assemble 누릅니다.

 

clip_image002[9]

 

이번에는 3 밑의 JNZ xxxxx NOP 교체하도록 하겠습니다모두 교체하니 아래처럼 코드가 바뀌었습니다.

 

clip_image001

 

이제 끝났나요아니죠. ㅎㅎㅎ아까 처음 "이상 이어야" reference 두곳이었죠 이제는

두번째 reference 가보겠습니다.

 

 

8)  아까 처음에 적어놓으셨던 곳으로 스크롤해서 가시거나, 아니면 다시 "이상 이어야" 검색하여 두번째 reference 더블클릭해서 가셔도 됩니다아래와 같은곳에 떨어지는데요이번에도 에레메세지를 reference 하는곳을 찾아갑니다.

 

마우스 우클릭 > Find references to > Selected command 선택합니다.

 

아까 5) 에서 처럼 이번에도 두곳의 주소가 뜹니다이번에도 두개의 주소를 적습니다.

우선 첫번째 주소로 가봅니다아래도 떨어집니다.

clip_image002[11]

 

이번에도 저희가 적어놓은 두곳이 바로 위아래로 붙어있군요

 

코드를 보니 위에 처음으로 찾았던 곳이랑 거의 흡사하군요.  JE JNZ 바로위에 어떠한 값을 태스트 하고 값이 일치할때와 불일치할때 에러메세지 뜨는곳으로 가게 되어있네요아까와 동일한 방법으로

JE JNZ NOP 바꿔줍니다.  7) 참조

 

9) 이제 필요한것은 바꾼듯한데 한번 파일을 저장하고 실행해볼까요 되기를 기도해봅니다. 아멘

 

마우스 우클릭 > Copy to excutable > All modification 선택후 창이뜨면 "copy all" 선택

 

새창이 열리면

 

마우스 우킬릭 > Backup > Save to file 선택후 아무곳에나 패치된 FolderPlus Browser4.exe 저장합니다.

 

폴더플러스 폴더에 새로 패치한 파일을 덮어씌우고, 한글자로 검색이 되는지 확인해봅니다

 

되나요뎃글로 되시는지 알려주세요. ^^

 

추신) 저번 검색 금지어 패치와 이번 한글자 검색 패치를 같이 해보세요. 캬햐햐햐!

[출처] 폴더플러스 한글자 검색 제한 패치 강좌|작성자 doduhdew100