반응형

요즘 느끼는 거지만 Windows의 file system이나 windows OS 의 서비스 기능들이 점점 고도화 됨으로 해서,
예전처럼 PC내의 file을 조작하는데 있어서 많이 복잡해 졌다는 것을 느낄때가 많더군요.

가장 단적으로 file explorer에서 file을 지우려 할때 system 파일이라서 지울수 없다고 한다거나,
또는 파일이나 folder를 열수 없도록 되어있는 경우등, 평소에는 잘 느끼지 못했지만 막상 directory를 정리하려다 보면 생각처럼 안될 때가 많습니다.

XP에서는 Unlocker 를 설치하고 lock을 풀면 되었는데, Windows 7 으로 넘어오면서 file에 대한 소유권등의 권한들이 매우 강화 되어, 결국 네이버님을 찾을 수 밖에 없게 만들더군요.

그렇게 여기저기 돌아다니면서 알게된 기능방법인데요. takeown, cacls 이라는 명령어가 있습니다. 이 명령어를 이용하여 소유권이전, 권한 획득 등이 가능합니다.


예를 들면
c:\window\systemx.dll 이 안지워진다.

[Window 7]
Window Key + R   --> 실행창 뜸,
"cmd" 를 입력하고 Ctrl+Shift + Enter key --> 이렇게 누르면 cmd 창이 관리자 모드로 뜹니다.
관리자 모드라고 해서 크게 달라진건 아니고, cmd 창의 title을 보면 "관리자" 라고 되어있습니다.
  --> 막상 해보니까 그냥 cmd 를 띄워도 관리자 모드로 뜨는 것 같군요. ㅡㅡ;
c:>
그러면
takeown /F c:\window\systemx.dll 
cacls c:\window\systemx.dll /G:사용자:F
사용자에는 windows login 할때 사용한 id 를 쓰면 됩니다.
windows login 할때 Papai 라는 이름으로 login했다면.
cacls c:\window\systemx.dll /G:Papai:F
라고 해주면, Papai 라는 사용자에게 해당 file에 대한 모든 권한을 주게 됩니다.
이렇게 하면 파일 삭제가 가능해 집니다.

이외에 directory에도 적용이 가능하고, 디렉토리 내에 많은 파일과 디렉토리가 있는 경우에도 takeown 과 cacls 를 이용해서 변경이 가능합니다.


이를 참고로 간단한 bat 파일을 만들어 봤습니다.
을 다음과 같이 작성합니다.
getowner.bat
TAKEOWN /F %1 /R
CACLS  %1 /T /G %2:F

사용법
c:\>getowner "안지워지는 디렉토리 이름" "컴퓨터사용자아이디" 
c:\> rd /s /q "안지워지는 디렉토리 이름"

 



TAKEOWN [/S system [/U username [/P [password]]]]
        /F filename [/A] [/R [/D prompt]]
[예] 
TAKEOWN /?
 TAKEOWN /F lostfile
 TAKEOWN /F \\system\share\lostfile /A
 TAKEOWN /F directory /R /D N
 TAKEOWN /F directory /R /A
 TAKEOWN /F *
 TAKEOWN /F C:\Windows\System32\acme.exe
 TAKEOWN /F %windir%\*.txt
 TAKEOWN /S system /F MyShare\Acme*.doc
 TAKEOWN /S system /U user /F MyShare\foo.dll
 TAKEOWN /S system /U domain\user /P password /F share\filename
 TAKEOWN /S system /U user /P password /F Doc\Report.doc /A
 TAKEOWN /S system /U user /P password /F Myshare\*
 TAKEOWN /S system /U user /P password /F Home\Logon /R
 TAKEOWN /S system /U user /P password /F Myshare\directory /R /A

CACLS 파일 이름 [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G 사용자:perm]
       [/R 사용자 [...]] [/P 사용자:perm [...]] [/D 사용자 [...]]
   파일 이름      지정된 파일의 ACL을 화면에 표시합니다.
   /T             현재 디렉터리와 모든 하위 디렉터리에서 지정한
                  파일을 찾아서 ACL을 바꿉니다.
   /L             대상에 대해 기호화된 링크 자체에서 작동합니다.
   /M             디렉터리에 탑재된 볼륨의 ACL을 변경합니다.
   /S             DACL에 대한 SDDL 문자열을 표시합니다.
   /S:SDDL        ACL을 SDDL 문자열에 지정된 값으로 바꿉니다.
                  (/E, /G, /R, /P 또는 /D 스위치와 함께 사용될 수 없음)
   /E             ACL을 대체하지 않고 편집합니다.
   /C             오류를 무시하고 ACL을 계속 바꿉니다.
   /G 사용자:perm 지정된 사용자의 사용 권한을 부여합니다.
                  Perm은 다음과 같습니다: R  읽기
                              W  쓰기
                              C  바꾸기(쓰기)
                              F  모든 권한
   /R 사용자      지정된 사용자의 사용 권한을 철회합니다.(/E와 함께만 유효)
   /P 사용자:perm 지정된 사용자의 사용 권한을 바꿉니다.
                  Perm은 다음과 같습니다: N  없음
                              R  읽기
                              W  쓰기
                              C  바꾸기(쓰기)
                              F  모든 권한
   /D 사용자      지정된 사용자의 액세스를 거부합니다.
한 명령에 하나 이상의 파일을 지정하는 대표 문자를 사용할 수 있습니다.
한 명령에 하나 이상의 사용자를 지정할 수 있습니다.






이외에 여러가지 재미있는 정보들이 있군요.
2099년까지 windows 7 사용하기. 등등
--

http://blog.daum.net/bruceka/15938776

머 이런거 벌써 이곳저곳에 많은 곳에 올라와있더라구여~
그래도 제가 보관하고픈 정보이기에 다시한번 포스팅합니다.
윈7이건 비스타이건 일단 무력화를 시키는 간단한 팁입니다.
인증에 관련된 파일에 시스템접근권한을 박탈(?)!! 하는 방법이라고합니다 ㅋㅋㅋㅋ

---------(원문)--------------------------------------------------------------------------

2099 년까지 쓸수있는 간단한 방법 입니다

비스타 서버2008 윈도우7 서버 2008 R2 전부 됩니다

비스타와 서버 2008은 SP2 버전에서만 됩니다.

 

윈도우 설치후 그냥 간단한 명령어 만으로 비스타와 윈도우 7 그리고 서버 2008 서버 2008 R2를 영구 사용이가능 합니다.

 

@echo off

takeown /f %Windir%\System32\slui.exe>nul
takeown /f %Windir%\System32\sppuinotify.dll>nul

icacls %Windir%\System32\slui.exe /deny "Network Service":f>nul
icacls %Windir%\System32\sppuinotify.dll /deny "Local Service":f>nul

 

1. @echo off  명령어가 보이지 않도록 하는 명령어 입니다.

2. takeown /f %Windir%\System32\slui.exe>nul

   takeown /f %Windir%\System32\sppuinotify.dll>nul

   이 명령은  관리자가 이전에 액세스가 거부되었던 파일의 소유권을 다시 할당하여 액세스를 복구하도록 합니다.

   2개의 파일에 엑세스를 허용 합니다. >nul  명령은 명령의 결과를 보이지 않도록 하는 것입니다.
   slui.exe 인증을 받는대 사용하는 파일입니다.

   sppuinotify.dll 정품이 아님을 알리는 서비스 입니다.

3. icacls %Windir%\System32\slui.exe /deny "Network Service":f>nul
    icacls %Windir%\System32\sppuinotify.dll /deny "Local Service":f>nul

  파일의 엑세스 권한을 설정하는 명령어 입니다 서비스가 스스로 파일에 접근할수 없도록 합니다.

 

  원리는 간단 합니다 사용자는 마음대로 파일에 접근 할수 있지만 시스템은 접근을 차단하는 방법 입니다.

  파일을 삭제하거나 서비스를 정지하면 3시간 지나서 정품 아님을 알리지만

  이렇게 하면 서비스는 가동 중이기 때문에 윈도우가 알아차리지 못합니다.

  간단한 명령어 만으로 2099년까지 그냥 사용이 가능합니다.

  워터마크는 워터마크 제거툴로 제거 하시면 됩니다.

  위 명령어를 2099 파일로 올렸습니다 마우스 오른쪽 버튼을 눌러 관리자 권한으로 실행 하시면 됩니다.

 

  이방법을 응용하면 서비스에서 파일에 접근하는 것을 차단할수 있습니다.

  서비스마다 계정 지정이 있습니다.

  이건 건드리면 안되고 파일에서 서비스에서 접근하는 것을 차단 하시면 됩니다.

  takeown /f 경로\확장자포함 파일명>nul
  icacls 경로\확장자포함 파일명 /deny "계정지정":f>nul


  여기서 한가지 번뜩이는 아이디어가 떠올랐습니다 마약 스스로가 스스로의 접근을 차단 한다면 ?

  어떻게 될까요 sppsvc 서비스를 자신만 접근하지 못하게 한다면 ?

  test 들어갑니다 3시간위에 결과 나옵니다.^^

 

 결론

 2099년에서 3시간후 역시 윈도우가 알아차리지 못합니다.

 서비스를 정지하면 정품이 아님을 알지만 서비스는 그대로 두고 파일 접근만 차단한 경우는 정품인지 정품이 아닌지 모릅니다.


+ Recent posts