안녕하세요 학생개발자입니다
저는 학교 사설동아리인 컴퓨터동아리에서 활동 하면서 컴퓨터실 관리를 어쩌다 보니 맞게 되었습니다.
학생들이 정보시간중 자유시간에 게임사이트 및 일부 커뮤니티에 접속하다 악성코드에 감염되어
난감했던 경험이 있었습니다. 한번은 갠드크랩(랜섬웨어)에 감염되었던 적이 있어서
저는 교육청 사이트 차단 프로그램에 차단 되지 않는 사이트를 차단 하기 위해
배치 파일과 vbs스크립트를 활용해 사이트 차단 프로그램을 제작하였으며
현제 학교에서 사용하고 있습니다 (그에 따른 학생들의 비난은 저에게 왔습니다 ㅋㅋ)
스크립트 소스코드 작동 방식은 윈도우 hosts파일을 활용하여 특정 사이트를 127.0.0.1(루프백 아이피)로 리다이렉션 시키는 방식으로
차단하는 방식입니다
vbs 스크립트를 사용한 이유는 UAC 권한상승 요청을 하기 위해 사용했습니다
UAC(사용자 계정 컨트롤)
권한상승 요청을 위해 임시파일을 활용했습니다.
@ECHO OFF
echo ==============================
set uaccheck=0
:CheckUAC
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACAccess
) else ( goto Done )
:UACAccess
echo 관리자 권한을 취득해야 합니다.
pause
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\uac_get_admin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\uac_get_admin.vbs"
"%temp%\uac_get_admin.vbs"
del "%temp%\uac_get_admin.vbs"
exit /b
:Done
echo 관리자 권한을 취득하였습니다.
echo ==============================
echo.>> "%systemroot%\system32\drivers\etc\hosts"
for /f "delims=" %%i in (%cd%\db.txt) do echo 127.0.0.1 %%i>> "%systemroot%\system32\drivers\etc\hosts"
echo .............................................
echo 게임사이트 차단프로그램
echo by.학생개발자
echo ......완료
PAUSE
사이트 차단 URL목록은 db.txt 에서 가져오는 형태입니다
for /f "delims=" 이 구문은 한줄식 순차적으로 잃는 다는 명령줄입니다.
감사합니다 ㅎㅎ