스크린 샷

제목 : SuperHidden.cmd 와 SuperHidden.vbs 에서 차이나는 부분이 있네요

왕초보

좋은이*님께 선물로 받으신 작품의 우클릭 메뉴에 보시면..숨김파일,폴더 또는 드라이브 표시, 숨김파일,폴더 또는 드라이브 표시 안함 이라는

메뉴가 있습니다.. 이 메뉴가 숨김파일,폴더를 보이게 하거나 안보이게 하는 기능이라는것을 다 알고 계실것 같습니다

 

이 우클릭 메뉴에 활용되는 파일이 Mini PE의 경우 SuperHidden.cmd 가 사용이 되고 Office PE에서는 SuperHidden.vbs가 사용이되고 있습니다..

저의 경우..숨김파일,폴더를 보이게 하는 레지를 하이브 해서 사용하기 때문에..제가 pe에서는 SuperHidden.cmd 와 SuperHidden.vbs가 없습니다

 

제목에 보시면..."SuperHidden.cmd 와 SuperHidden.vbs 에서 차이나는 부분이 있네요"라고 되어 있습니다.

PE를 사용하실때 차이가 나도..실제 아무런 차이를 느끼시지는 못할것 같습니다..차이가 났다면..벌써 다른분이 피트백이 있었을것 같습니다

저도..별것 아닌데 하는 생각에 다른분들이 이야기 하겠지 했었습니다..아직까지 이야기가 없고...실컴에도 SuperHidden.cmd를 활용하시는분이

있으셔서..SuperHidden.cmd 관련되 레지들에 대해서 정리를 하여 보았습니다

 

 

SuperHidden.cmd에서 활용되는 레지가 이런 내용이구나...그리고..SuperHidden.cmd에서 사용되어지는 RExplore.exe 파일이 이런것이구나

하는정도로만 참고하여 주십시요

 

이미 고수님들께서는 다 아시는 내용입니다...단지 어쩌다 제가 관련 내용을 모아서 정리한것뿐입니다..

아시는 분들은 그냥 통과하여 주십시요

 

먼저 SuperHidden.cmd에 사용된 관련 레지에 대한 정보입니다...인터넷에 찾아보시면 많이 있습니다..

 

1) 아래에 링크에서 제가 원했던 값이 딱 보여서 소개를 하게되었습니다.

 

  레지 Hidden의 경우 "숨김 파일 및 폴더 (0,2=숨김 파일 및 폴더 표시 안 함 1=숨김 파일 및 폴더 표시)" 이렇게 되어 있습니다

  표시 안함에 0 과 2  이렇게 2가지를 사용하고 있습니다...입니다님께서 댓글에 소개하여 주신 글에서 0 으로 되어 있어서..좀 헤메였습니다

  둘다 적용이 된다고 되어 있습니다

 

  ShowSuperHidden 와 HideFileExt" 경우 숨기/보이기 일때 서로 0, 1이 반대값으로 진행이 됩니다..나중에 보시면 아 하실것 같습니다

  

 

## 윈도우 레지스트리 설정 - 폴더 옵션 ##

https://m.blog.naver.com/PostView.nhn?blogId=xoonho&logNo=40072640801&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

 

보호된 운영 체제 파일 숨기기(권장) (0=사용 1=사용 안 함)

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

"ShowSuperHidden"=dword:00000000

 

;숨김 파일 및 폴더 (0,2=숨김 파일 및 폴더 표시 안 함 1=숨김 파일 및 폴더 표시)

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

"Hidden"=dword:00000002

 

;알려진 파일 형식의 파일 확장명 숨기기 (0=사용 안 함 1=사용)

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

"HideFileExt"=dword:00000000

 
 

2) 아래는 질문란에 글이 입니다님께서 댓글을 써주신 내용입니다. 질문내용되 댓글을 그대로 복사해 왔습니다

 

WINPE 부팅 시 'F5' 새로고침 자동 입력하게 하는 방법 있나요?

https://windowsforum.kr/qna/12317555#comment_12319752

 

윈빌더로 PE 간단하게 만들었습니다.

숨긴 파일, 확장자 표시 되어 있는걸 선호하지 않았지만

윈빌더상에서는 변경하는 방법을 몰라 그냥 사용하고 있었습니다.

 

최근에 강좌 / 팁 보면서 간단하게 레지 파일 등록해서 숨긴파일, 확장자 표시 안 함으로 변경해서 사용했습니다.

문제가 PE 부팅 시 레지 값은 입력이 되어 있는데 '새로 고침'을 하지 않으면

숨긴 파일, 확장자가 보이는 상태입니다.

 

 

제목 그대로 PE 부팅 시 F5 새로고침을 자동으로 입력해 줄 만한 방법이 있는지 알고 싶습니다.

아니면 윈빌더에 숨긴 파일, 확장자를 표시 안 하고 빌드 할 수 있는지 알고 싶습니다. 

 

 

여기는 입니다님께서 답글을 주신 내용입니다..여기 레지에 ShowSuperHidden 값이 "0" 으로 되어 있습니다...

ShowSuperHidden 값은 2"도 가능하다고 1) 링크에서 설명을 해주고 있습니다

 

PECMD 자체 리프레시 명령.

ENVI @@DeskTopFresh=1

 

PE 만들때 레지스트리를 미리 수정 하는게 제일 좋죠.

 

RegHiveLoad,Tmp_Default,%RegDefault%

RegWrite,HKLM,0x4,Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,Hidden,0

RegWrite,HKLM,0x4,Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,ShowSuperHidden,0

RegWrite,HKLM,0x4,Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,HideFileExt,1

RegHiveUnLoad,Tmp_Default

 

3) 어떤 레지의 어떤 값이 사용되는지 판단이 되시죠.. 폴더 속성에 보시면..아래 3가지 항목에 해당합니다

   아래 3개 항목에 대해서 체크,체크해제를 하시면서 레지값을 살펴보시고 숨김파일, 숨김폴더등이 어떻게 되는지 보신다면..바로 이해가 되실것 

   같습니다

 

1.jpg

 

4) 위의 레지중에서 "알려진 파일 형식의 파일 확장명 숨기기" 에서 파일 확장자가 보이거나 숨김이 됩니다

   파일 확장자 표시되거나 표시 되지 않게 하는 다른 레지에 관해서는 sunshine님께서 강좌란에 자세히 설명을 해주셨습니다.

   혹시 궁금하신 분들은 참고하여 주십시요.. 

 

마지막)winpe 숨겨진 파일 및 확장자 보기 우클릭 등록 팁 

https://windowsforum.kr/index.php?mid=lecture&search_keyword=%ED%99%95%EC%9E%A5%EC%9E%90&search_target=title_content&document_srl=9916218ㄱ

 

 

SuperHidden.cmd에서 사용되는 레지에 대해서는...위의 설명을 참고하셨다면..어느정도 파악이 되셨을것 같습니다

아래는..SuperHidden.cmd와 SuperHidden.vbs에서 레지값이 1개가 다른 부분에 대한 내용입니다

 

5) 먼저 SuperHidden.vbs 내용입니다  ShowSuperHidden값이 상황에 따라서 0 과 1로 변동이 됩니다  

 

If WScript.Arguments.length =0 Then

  Set objShell = CreateObject("Shell.Application")  

 

  objShell.ShellExecute "wscript.exe", Chr(34) & _

  WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1

Else

Dim WSHShell

Set WSHShell = WScript.CreateObject("WScript.Shell")

if WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden") = 1 then

WSHShell.RegWrite "HKCR\LibraryFolder\background\shell\ShowHidden\", "@shell32.dll,-30500", "REG_SZ"

WSHShell.RegWrite "HKCR\LibraryFolder\background\shell\ShowHidden\Icon", "imageres.dll,-8", "REG_SZ"

WSHShell.RegWrite "HKCR\Directory\background\shell\ShowHidden\", "@shell32.dll,-30500", "REG_SZ"

WSHShell.RegWrite "HKCR\Directory\background\shell\ShowHidden\Icon", "imageres.dll,-8", "REG_SZ"

WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden", "0", "REG_DWORD"

WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden", "2", "REG_DWORD"

WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "1", "REG_DWORD"

WSHShell.RegWrite "HKCR\LibraryFolder\background\shell\ShowHidden\Position", "Bottom", "REG_SZ"

WSHShell.RegWrite "HKCR\Directory\background\shell\ShowHidden\Position", "Bottom", "REG_SZ"

WScript.CreateObject("WScript.Shell").Run "RExplore.exe"

else

WSHShell.RegWrite "HKCR\LibraryFolder\background\shell\ShowHidden\", "@shell32.dll,-30501", "REG_SZ"

WSHShell.RegWrite "HKCR\LibraryFolder\background\shell\ShowHidden\Icon", "shell32.dll,144", "REG_SZ"

WSHShell.RegWrite "HKCR\Directory\background\shell\ShowHidden\", "@shell32.dll,-30501", "REG_SZ"

WSHShell.RegWrite "HKCR\Directory\background\shell\ShowHidden\Icon", "shell32.dll,144", "REG_SZ"

WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden", "1", "REG_DWORD"

WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden", "1", "REG_DWORD"

WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "0", "REG_DWORD"

WSHShell.RegWrite "HKCR\LibraryFolder\background\shell\ShowHidden\Position", "Bottom", "REG_SZ"

WSHShell.RegWrite "HKCR\Directory\background\shell\ShowHidden\Position", "Bottom", "REG_SZ"

WScript.CreateObject("WScript.Shell").Run "RExplore.exe"

end if

Set WSHShell = Nothing

WScript.Quit(0)

End If

 

6) SuperHidden.cmd 파일 내용입니다   ShowSuperHidden값이 상황이 다른데도 둘다 값이 1 입니다

 

   어! 하시는 생각이 드실것 같습니다... PrincePE을 튜팅한 PE가 Mini PE입니다...이 PE의 경우 VBS 관련 파일이 없어서..VBS가 실행되지 않습니다

   그래서 Win10XPE에서 사용되어 지는 SuperHidden.vbs 파일이  PrincePE에서  SuperHidden.cmd 파일로 변환이 된것 같습니다..

   이 과정에서.cmd파일에는  ShowSuperHidden 값이..숨김/보이기 일때 둘다 1이 된것 같습니다    

 

@echo off

 

if not exist X:\Windows\SuperHidden.txt goto:Hidden

 

del /s /q X:\Windows\SuperHidden.txt

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "Hidden" /t REG_DWORD /d "2" /f

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d "1" /f

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowSuperHidden" /t REG_DWORD /d "1" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden" /v "" /d "@shell32.dll,-30500" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden" /v "Icon" /d "imageres.dll,-8" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden" /v "Position" /d "Bottom" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden\command" /v "" /d "Pecmd.exe EXEC !X:\Windows\SuperHidden.cmd" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden" /v "" /d "@shell32.dll,-30500" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden" /v "Icon" /d "imageres.dll,-8" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden" /v "Position" /d "Bottom" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden\command" /v "" /d "Pecmd.exe EXEC !X:\Windows\SuperHidden.cmd" /f

start /b %windir%\RExplore.exe

exit /b

 

:Hidden

echo Hidden > X:\Windows\SuperHidden.txt

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "Hidden" /t REG_DWORD /d "1" /f

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d "0" /f

reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowSuperHidden" /t REG_DWORD /d "1" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden" /v "" /d "@shell32.dll,-30501" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden" /v "Icon" /d "shell32.dll,144" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden" /v "Position" /d "Bottom" /f

reg.exe add "HKEY_CLASSES_ROOT\Directory\background\shell\ShowHidden\command" /v "" /d "Pecmd.exe EXEC !X:\Windows\SuperHidden.cmd" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden" /v "" /d "@shell32.dll,-30501" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden" /v "Icon" /d "shell32.dll,144" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden" /v "Position" /d "Bottom" /f

reg.exe add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ShowHidden\command" /v "" /d "Pecmd.exe EXEC !X:\Windows\SuperHidden.cmd" /f

start /b %windir%\RExplore.exe

exit /b

 

7)  SuperHidden.vbs 파일을 원본이라고 할까요...

 

   SuperHidden.vbs와 SuperHidden.cmd에서 레지 등록후..적용을 위해서 RExplore.exe 파일이 실행이 됩니다.. RExplore.exe파일의 경우 위의

   3개 레지 등록후 탐색기 재시작을 하지 않아도 적용이 되고 해주는 필수 파일입니다

   

   SuperHidden.vbs와 SuperHidden.cmd에서 RExplore.exe를 사용하고 있어서 파일이 2개가 필요합니다.이것을 한개로 한다고 오토잇, 오토핫키.

   pecmd.exe 3가지로 구현을 해서 테스트 해보고 있는중에 재미있는 글을 발견을 했습니다..

   

    RExplore.exe의 원본을 카리스마조님께서 이미 소개를 해주셨네요.

 

   리눅스 포럼에 있는 글 내용입니다.

   

   superHidden.exe가 무엇입니까? 2015.01.08 03:33 글입니다 오래 되었는데 저는 이제서야 알게 되었습니다

   https://kjvvv.kr/231036

 

  댓글에 카리스마조님께서 남시신 글입니다

  이파일은 미키님이 오토핫키로 만든것으로 바이러스로 오인되는 것입니다.

  유명하신 분이시죠  미키님이 만드신 작품이네요....오토핫키 소스 전체를 소개하여 주셨습니다

 

오토핫키로 만든 프로그램은 바이러스 오인이 많습니다.

소스 열어보니 바이러스는 없습니다.

 

; <COMPILER: v1.1.15.00>

#NoTrayIcon

RunAsAdmin()

SetWorkingDir, %A_ScriptDir%

RunAsAdmin() {

if not A_IsAdmin

{

Run *RunAs "%A_ScriptFullPath%"

ExitApp

}

}

RegRead, HiddenFiles_Status, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden

If HiddenFiles_Status = 2

{

RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden, 1

RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, HideFileExt, 0

RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, ShowSuperHidden, 1

GoSub, RefreshExplorer

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden,Position,Bottom

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden,Icon,shell32.dll`,144

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden,,@shell32.dll`,-30501

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden\command,,%A_WinDir%\SuperHidden.exe

ExitApp

}

Else

{

RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden, 2

RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, HideFileExt, 1

RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, ShowSuperHidden, 0

GoSub, RefreshExplorer

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden,Position,Bottom

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden,Icon,%A_WinDir%\SuperHidden.exe

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden,,@shell32.dll`,-30500

Regwrite, REG_SZ, HKCR, Directory\Background\shell\ShowHidden\command,,%A_WinDir%\SuperHidden.exe

ExitApp

}

RefreshExplorer:

WinGet, w_WinID, ID, ahk_class Progman

SendMessage, 0x111, 0x1A220,,, ahk_id %w_WinID%

WinGet, w_WinIDs, List, ahk_class CabinetWClass

Loop, %w_WinIDs%

{

w_WinID := w_WinIDs%A_Index%

SendMessage, 0x111, 0x1A220,,, ahk_id %w_WinID%

}

WinGet, w_WinIDs, List, ahk_class #32770

Loop, %w_WinIDs%

{

w_WinID := w_WinIDs%A_Index%

ControlGet, w_CtrID, Hwnd,, SHELLDLL_DefView1, ahk_id %w_WinID%

if w_CtrID !=

SendMessage, 0x111, 0x7103,,, ahk_id %w_CtrID%

}

return

 

내부 코드입니다.

숨김 파일과 폴더를 보이도록 하기 위해서는 레지스트리를 수정후 새로 고침을하기 때문에

백신에서는 바이러스로 오인할수 있지만 정상동작이며 바이러스는 없습니다.

 

전체 소스에서 바리러스 검출이 되어서..레지 등록하는 부분들이 빠진 나머지 소스가 RExplore.exe 가 되었네요

 

이 소스에서 보시면 ShowSuperHidden값이 잘 보이시죠..이 소스가 정답인것 같습니다

2015년 오래전에..이미..미키님께서 이렇게 멋진 프로그램을 만들어 주셨었네요..미키님 감사합니다

 

SuperHidden.vbs가 만들어직데 된 사연되 소개되어 있네요. 카릿그마조님 댓글입니다

 

바이러스 오인 안되게 만들수도 있겠습니다.

방법은 레지스트리 입력 부분을 별도로 구성하고 새로 고침만 오토핫키로 하면 레지스트리 수정이 없기 때문에

백신에서도 오인하지 않습니다.레지스트리 수정은 vbs로 하면 됩니다. cmd나 vbs는 바이러스 오인이 안됩니다.

정리하면 레지스트리 입력 부분은 vbs로 처리하고 새로 고침만 오토핫키로 한다음 이것들을 마우스 우클릭에 레지스트리고 연결하는 것입니다. 사용자가 마우스 우클릭에서 숨김파일 보이기를 누르면 먼저 vbs로 레지를 수정한다음

오토핫키를 호출하여 새로고침하면 바이러스 오인없이 동일한 동작을 수행할수 있습니다.

 

 

8) RExplore.exe 파일을 32bit 파일입니다..레지값을 등록하지 않은데도..바이러스 검출이 11개나 되었습니다.

2.jpg

 

 

9) 소개된 오토핫키 전체 소스로 컴파일한것이니다..컴파일은 ANSI 로하였습니다.  바이러스 검출이 9개나 되네요

3.jpg

 

10) x86 컴파일이시 궁금해서 Unicode로 컴파일하였습니다..아니 바이러스 검출이 7개로 줄었네요..

4.jpg

 

11) x64 버전입니다..x64는 역시 검출이 줄어드네요 3개입니다

5.jpg

 

12) 오토핫키 전체소스에서 우클릭 메뉴 등록 레지는 빼고 레지 3개만 등록하는것만 있는것입니다..x86 ANSI로 컴파일 하였습니다 8개가 나오네요

6.jpg

 

13) 레지 3개만 등록하는 x86 Unicode로 컴파일 한것이니다..역시 ANSI보다 1개가 줄었습니다

7.jpg

 

14) 레지3개만 등록하는 x64 버전입니다..3개가 검출이 되었습니다.

8.jpg

 

15) RExplore_x64.exe 버전도..검출이 4개가 되네요..x64 버전의 경우 레지등록하는것이 검출이 더 적네요..

9.jpg

 

16) 마무리

SuperHidden.cmd 와 SuperHidden.vbs 에서 차이나는 부분은 실 ShowSuperHidden 1개 값에서 차이가 나네요..

 

PE를 사용하시면서 별차이 느끼지 못하였을것 같습니다..그래도 원본하고 어디가 다른지는 알고 사용을 하시거나..아니면..원본과 똑같이 수정하시고

사용하시는것이 좋죠.. 수정해야 할곳이 이제는 보이시죠..오토잇 소스에 보시면 딱 눈에 들어오실것 같습니다  2, 1, 0 이네요.

별것 아닌것에 사용기 내용이 길었습니다..

 

그리고 애용하시는 RExplore.exe 파일에도 역사가 있네요.. 재미삼아 보아 주십시요

 

오늘 하루도 즐거운일만 있으시길 바랍니다

 

댓글 [2]

별의아이

2020.03.31
16:00:27

수고 많이 하셨습니다.^^

서기다

2020.03.31
16:19:11
와 배경역사를 알게된것 같습니다 폰으로 읽는데 시간 가는줄 모르고 보았네요 정말 감사드립니다 이해하기 정말 좋네요 수고 많으셨습니다
List of Articles
[공지] 스크린샷 업로드 유의사항 3
XE1.11.6 Layout1.4.8