이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^

- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.

- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)

- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)

- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.

레지스트리 추적이란?


지난 VMware Workstation 관련 포스팅 중 VMware Workstation 이 CD/DVD-ROM 의 자동 실행을 강제로 제한하고 또 이를 해제할 수 있는 설정에 대해 직접 설정을 변경하면서 추적해 보았다는 이야기를 했습니다. 이러한 것은 어떻게 한 것일까요?



알다시피 윈도우와 관련된 모든 내용은 레지스트리에 저장이 됩니다. 그래서 윈도우와 관련된 설정이 변경되었다는 것은 관련 레지스트리가 수정되었다는 것을 의미합니다. 설치된 응용 프로그램들도 자신들의 설정을 저장하기 위해 레지스트리를 사용합니다.[물론 프로그램들은 자신들만의 자체적인 설정 파일에 저장하기도 합니다.]

지난 포스팅에서 문제가 된 것은 VMware Workstation 을 제거한 후에도 CD/DVD-ROM 의 자동 실행이 정상적으로 작동하지 않는 것이었습니다. 이는 명확하게 VMware Workstation 이 윈도우의 기본 설정을 임의로 건들였다는 의미이죠. 이러한 윈도우의 설정들은 거의 대부분이[뭐... 거의 전부가] 레지스트리에 저장이 됩니다.

그래서 관련된 설정을 변경하여 적용해 보면서 이러한 레지스트리의 변동 사항을 체크하면 해당 프로그램이 어떤 레지스트리를 사용하는지 쉽게 파악할 수 있습니다.[프로그램 자체의 기능보단 윈도우 전체에 영향을 미치는 그런 설정들] 물론 윈도우의 설정들도 레지스트리에 그 내용을 기록하니 윈도우의 기본 설정들을 하나씩 변경하면서 레지스트리의 변동 사항을 체크하면 해당 설정과 관련된 레지스트리를 파악할 수도 있습니다.


이러한 작업에는 전문적으로 레지스트리의 변경 사항을 모니터링하는 프로그램이나 레지스트리 비교 프로그램을 사용하여 간단하게 작업을 할 수 있습니다. 대표적으로 간편하게 사용이 가능한 RegShot 이라는 프로그램이 있습니다.



허나 이번 글에서는 다소 복잡하더라도 이러한 프로그램의 도움없이 윈도우의 자체적인 기능만으로 레지스트리의 변경 사항을 추적하는 것에 대해서 알아보도록 하겠습니다. 마땅한 프로그램을 당장 구할 수 없거나 여의치 않아 어쩔 수 없이 윈도우의 기본 기능만을 활용해야 할 때 가 있을 거라고 가정해 보도록 하죠. 뭐 흔치는 않겠지만 말이죠. ^^;




1 단계 - 비교용 레지스트리 등록 파일 준비하기


가장 먼저 레지스트리를 비교하기 위해선 레지스트리를 우리가 보고 이해할 수 있는 reg 등록 파일로 저장을 해야 합니다. 비교를 해야 하기 때문에 두 개의 레지스트리 등록 파일이 필요하겠죠? 관련된 설정을 변경하기 전에 레지스트리 등록 파일을 하나 저장한 후 설정을 변경하고 다시 한 번 레지스트리 등록 파일을 저장하면 됩니다. 레지스트리는 일단 정확하게 어느 루트키에 기록이 되는지 알지 못하기 때문에 두 번 모두 전체의 레지스트리를 백업합니다.

  • 설정 변경 전 레지스트리를 REG 등록 파일로 백업
  • 설정 변경 후 레지스트리를 REG 등록 파일로 백업


일단 설정을 변경하기 전 레지스트리 편집기를 실행한 후 좌측의 트리에서 컴퓨터를 마우스 오른쪽 버튼으로 클릭한 후 메뉴에서 내보내기 항목을 선택합니다.



적절한 이름으로 레지스트리를 저장합니다.




저장을 마쳤으면 이제 원하는 설정을 변경한 후 동일한 방법으로 레지스트리를 저장합니다. 작업을 마치면 설정 변경 전, 변경 후의 두 가지 레지스트리 등록 파일이 준비되었겠죠?




※ 비교를 위한 두 개의 레지스트리를 저장하는 작업의 사이에는 설정을 변경하는 작업 외에 최대한 다른 작업이 끼어들지 않도록 해 주는 것이 좋습니다. 작은 변화라도 윈도우는 모두 레지스트리에 기록하기 때문에 그만큼 필요없는 쓰레기 정보가 늘어나게 됩니다.




2 단계 - 레지스트리 등록 파일을 비교하기


이제 준비한 두 레지스트리를 비교하여 서로 다른 내용만을 따로 추출해 내야 합니다. 여기에는 윈도우의 기본 파일 비교 명령인 Fc 명령을 사용합니다. 이 때 비교 결과가 보통 꽤나 길기 때문에 출력 리다이렉션을 사용하여 임의의 텍스트 파일로 저장하도록 합니다.

fc /u shot1.reg shot2.reg > compare.txt



※ 이 때 fc 명령의 매개 변수 중 /u 는 비교 파일이 아스키(텍스트) 파일임을 의미합니다.


두 레지스트리 파일을 비교하여 다른 부분만을 추출한 텍스트 파일의 준비를 마쳤습니다. 이제 메모장을 통해 텍스트 파일을 확인하여 바뀐 부분이 무엇인지 파악합니다. 이러한 비교 결과에는 정확한 정보 외에 상관없는 쓰레기 정보도 끼어들기 때문에 보통 관련된 레지스트리 지식이 어느 정도 필요할 수 있습니다.[이럴 땐 값의 이름을 검색할 수 있는 내용은 검색을 통해 알아보는 것이 좋습니다]

아래와 같이 NoDriveTypeAutoRun 이라는 값이 총 두 군데에서 변경이 되었네요.






3 단계 - 바뀐 부분 검색하기


이제 위에서 찾은 정보를 바탕으로 검색을 합니다. 검색은 값 이름을 통해 레지스트리 편집기에서 해도 되고 저장해둔 레지스트리 등록 파일을 메모장으로 열어서 그곳에서 검색해도 됩니다. 저는 메모장에서 검색해 보도록 하겠습니다.[레지스트리 파일의 용량이 크기 때문에 시스템에 따라 메모장에서 여는데 오래 걸릴 수 있습니다.]

해당 내용을 찾았습니다. 이제 어느 키의 값인지 정확하게 알게 되었습니다.



똑같은 내용으로 바뀐 부분이 하나 더 있었죠? 또 찾아본 모습입니다. 아래와 같이 또 다른 키 하위에 값이 있죠?




흠... 레지스트리의 값을 이해하는데에는 약간의 정보나 기반 지식이 필요할 수 있습니다. 두 번째 찾은 값은 Wow6432Node 키 하위에 있는 값이죠? 이 키 하위의 키와 값들은 윈도우가 자동으로 관리하는 값들로 사용자가 건들일 녀석들은 아닙니다. 자세한 정보는 Wow64 에 대해서 검색해 보세요. ^^


지금까지 윈도우의 기본 기능을 통해 변경된 레지스트리를 추적하는 방법에 대해서 알아보았습니다. 사실 레지스트리 비교 프로그램을 사용하면 간단한 일이지만 이러한 방법도 있다는 것을 알아 두시는 걸로 이번 포스팅을 마치도록 하겠습니다.




☞ Wow6432Node

Wow6432Node 키는 64 비트 윈도우에만 있는 녀석입니다. Wow64 라는 기능에 의해 생성되는 키로 Wow64 란 64 비트 버전의 윈도우에서도 기존의 32 비트용으로 제작된 응용 프로그램들이 실행될 수 있도록 해주는 기능입니다. 이 때 Wow 는 'Windows on Windows' 를 의미합니다. 64 비트 윈도우 안에 32 비트 윈도우가 실행된다는 의미로 해석하면 될 듯 합니다. 64 비트 버전의 윈도우에서 아무런 문제없이 32 비트용 응용 프로그램을 사용할 수 있는 것은 바로 이 Wow64 라는 기능이 있기 때문입니다.

아무튼 이러한 Wow64 는 32 비트 응용 프로그램과 64 비트 윈도우 사이에서 레지스트리를 보호하고 안정성을 높이기 위해 레지스트리 리다이렉션(리디렉션)이라는 기능을 사용합니다.[명령 프롬프트의 리다이렉션과는 다릅니다.]

위의 경우 [HKEY_LOCAL_MACHINE\SOFTWARE] 경로가 자동으로 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node] 키 하위로 매핑된 것 입니다. 여러분께서 임의로 [HKEY_LOCAL_MACHINE\SOFTWARE] 키 하위의 특정 값을 변경하면 동시에 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node] 키 하위의 동일한 값도 동시에 변경되는 것을 보실 수 있을 겁니다. 아무튼 저도 좀 더 정확한 정보가 필요하지만 윈도우가 자동으로 매핑하는 부분으로 사용자가 건들일 부분은 아닙니다.

자세한 정보는 아래의 글을 확인하시길 바랍니다.(영문)




: