명령 프롬프트 실행창 안보이게 하는 방법 2가지

명령 프롬프트 실행창 안보이게 하는 방법이 있을까요? 예 있습니다. 우리는 배치파일을 실행할적에 명령프롬프트 창이 팝업이 되면서 어떤 명령이 실행이 되고 에러가 있는지 확인할 수 있습니다. 하지만 다른 프로그램이나 서비스가 실행될때 방해가 화면을 가리는 방해가 될수 있고, 잘못해서 창을 닫을수도 있습니다. 이때 실행창을 안보이게 해서 해결할수 있습니다.

vbs 스크립트로 명령 프롬프트 실행창 안보이게 하는 방법

vbs 스크립트 코드

vbs는 윈도우 자체 지원기능이므로 따로 코딩이나 그런게 필요 없습니다. 이것도 프로그램의 일종이라 기초적인 것만 알고 저두 깊게는 모릅니다. 상당히 많은 부분을 할수 있더군요. 아래 코드로 명령프롬프트 실행창을 안보이게 할수 있습니다.

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "실행할 배치파일 및 cmd명령어" & Chr(34), 0
Set WshShell = NothingCode language: DOS .bat (dos)

vbs 스크립트 테스트

디펜더 완전끄기 설정방법 배치파일 입니다. 이전 글에 소개된 내용입니다. 요놈은 많은 명령어를 주고 있어서 명령창에서 오래 나타납니다. disable_defener.bat 파일로 아래 코드를 저장하고 테스트해 보겠습니다.

::실행중인 서비스 중지
sc config Sense start= disabled > NUL 2>&1
net stop Sense > NUL 2>&1
sc config WdFilter start= disabled > NUL 2>&1
net stop WdFilter > NUL 2>&1
sc config WdNisSvc start= disabled > NUL 2>&1
net stop WdNisSvc > NUL 2>&1
sc config WinDefend start= disabled > NUL 2>&1
net stop WinDefend > NUL 2>&1
::재부팅후 서비스 사용 안함 
reg add "HKLM\System\CurrentControlSet\Services\Sense" /v "Start" /t REG_DWORD /d "4" /f > NUL 2>&1
reg add "HKLM\System\CurrentControlSet\Services\WdFilter" /v "Start" /t REG_DWORD /d "4" /f > NUL 2>&1
reg add "HKLM\System\CurrentControlSet\Services\WdNisSvc" /v "Start" /t REG_DWORD /d "4" /f > NUL 2>&1
reg add "HKLM\System\CurrentControlSet\Services\WinDefend" /v "Start" /t REG_DWORD /d "4" /f > NUL 2>&1
::디펜더 관련 작업스케쥴러 사용안함 
schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Cache Maintenance" /Disable > NUL 2>&1
schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Cleanup" /Disable > NUL 2>&1
schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Scheduled Scan" /Disable > NUL 2>&1
schtasks /Change /TN "Microsoft\Windows\Windows Defender\Windows Defender Verification" /Disable > NUL 2>&1
::디펜더 사용안함 및 실시간 감시 정책 변경 
reg delete "HKLM\Software\Policies\Microsoft\Windows Defender" /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d 1 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableBehaviorMonitoring" /t REG_DWORD /d 1 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableOnAccessProtection" /t REG_DWORD /d 1 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRealtimeMonitoring" /t REG_DWORD /d 1 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Real-Time Protection" /v "DisableScanOnRealtimeEnable" /t REG_DWORD /d 1 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\Reporting" /v "DisableEnhancedNotifications" /t REG_DWORD /d 1 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "SpynetReporting" /t REG_DWORD /d 0 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SpyNet" /v "SubmitSamplesConsent" /t REG_DWORD /d 0 /f > NUL 2>&1
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\MpEngine" /v "MpEnablePus" /t REG_DWORD /d 0 /f > NUL 2>&1
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v "WindowsDefender" /f > NUL 2>&1 > NUL 2>&1Code language: DOS .bat (dos)

vbs 스크립트에 아래처럼 이름을 넣어줍니다.

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "disable_defender.cmd" & Chr(34), 0
Set WshShell = NothingCode language: DOS .bat (dos)

저장을 disable_defender.vbs 로 저장합니다. cmd 와 vbs를 같은 폴더에 집어 넣는게 편합니다.

명령 프롬프트 실행창 안보이게 하는 방법 1

관리자 권한으로 disable_defender.cmd를 실행해봅니다. 아래처럼 cmd 실행창이 보입니다.

2020 09 21 230142

이제 disable_defender.vbs를 실행해 보겠습니다. 아무것도 안보이기 때문에 화면을 캡춰할수가 없네요. 아주 간단한 동영상으로 확인해 보도록 할게요.

hiderun.exe 프로그램으로 명령 프롬프트 실행창 안보이게 하는 방법

hiderun.exe는 PE에서 사용되는 프로그램입니다. 스크립트 덩어리인 PE는 배치파일등으로 설정을 불러 오는 경우가 많은데 이것을 이용해서 화면을 안보이게 합니다. 용량은 아주 작습니다. x86, x64 비트별로 따로 있습니다. 두가지를 압축해서 아래 링크에 올려놓습니다.

사용방법

hiderun.exe /w "배치파일 및 명령어"

/W 옵션은 명령어가 여러개로 이루어진 배치 파일의 경우 다 끝날때까지 기다리라는 스위치 입니다. 이 스위치가 없으면 명령어를 순차적으로 실행하고 종료 하지만, /W 스위치를 넣으면 해당 명령어가 다 실행될때까지 프로세스가 살아 있습니다. vbs를 사용했을때하고 차이점입니다. 편하신데로 사용하면 될듯 하네요.

아래는 Virustotal 검사 결과입니다. hiderun.exe가 불안할수 있어서 저두 테스트해 보고 결과를 올려드립니다. 윈도우 디펜더에서는 바이러스로 오진할 수 있습니다.

https://www.virustotal.com/gui/file/28b69e5d17e2fd8451411c0295bc9122a1e863e0a2f60817cd152ae3e29a84ef/detection

테스트는 해도 안보이니 의미가 없고 위에 동영상을 캡쳐 한것으로 대신할까 합니다.

마치며

vbs나 hiderun 프로그램으로 명령 프롬프트 실행창을 안보이게 할수 있는데요. 이렇게 하면 스크립트 에러가 생기는것을 볼수 없습니다. 디버깅도 할수가 없구요. 완전하게 제대로 실행되는 명령어나 실행파일일때만 사용하시기 바랍니다.

Leave a Comment