죽지않는 프로세스를 계속 죽여보자! (feat. batch)
죽지않는 프로세스 죽이기.
사실상 이번에 다루는건 죽지않는 프로세스.
(저의 의도는 좀비프로세스를 죽이는 것입니다.)
즉, 좀비프로세스를 반복문을 이용하여 자동으로 계속 죽여주는 역할을 하는 프로그램을 만들어 보도록 하겠습니다.~
우리는 배치(Batch)라는 형식으로 파일을 만들어서 사용해볼건데요?
우선 '*.bat' 라는 파일 많이 들어 보셨나요?
얘를 이용하면, 간단한 코드로 예약코드나 다양하게 일정들을 코드로 프로그램화 시켜 간편하게 실행할 수 있답니다.
제가 이 글을 올리는 실질적인 이유는, 다들 요즘학교에서는 선생님 컴퓨터에 '원격 감시 프로그램'이 깔려있고, 나머지 학생 컴퓨터에는 '원격 클라이언트 프로그램'이 깔려 져 있을텐데요...
이게 참 골치 아프더라구요 ㅠㅠ
학창시절에 컴퓨터실 가서 게임하는게 추억인데, 감시받으면서 게임을 할 수는 없잖아요?
그러니까, 한번 따라해보세요~~
우선! 원격 프로그램을 파악해야 합니다.
이건 본인의 통찰력과 선생님이 들고계신 프로그램들을 잘 파악하여, "아! 이게 원격관리 프로그램이구나!"라는 것을 알아 채셔야 합니다.
이 후 작업표시줄(화면 맨 하단에 시간 옆 <알약이나 네트워크 연결상태 등 프로그램들이 실행되고 있는 것을 보여줌>)에서 원격관리프로그램이 실행되고 있는지
봐줍시다!!
원격 프로그램들을 오른쪽 클릭하셔서 뭐 종료하기, 관리자로 전환하기 등등 막 눌러 보세요?
비밀번호 입력하라 하죠? 어! 난 비밀번호 몰라!
그럼 제어판이나 아예 그 폴더를 삭제 해봅시다.
"귀찮은데.... 결과만 말해주세여"
네! 실패입니다.
왜? 이미 실행중인 상태라 삭제하기는 글러 먹었구요, 비밀번호도 모르는 상태라서 어떻게 할 방법이 없습니다.
"어! 저 뚫렸어요!!!" 어떻게 뚫었을까요:?
편법이긴 하지만, 고도의 타이밍이 필요한 기술입니다.
메모장등 막 적어놓고 웹페이지 띄워 놓고 등등 복잡하게 한뒤 로그오프나 다시시작 등을 클릭 후 프로그램이 실행중이라서 강제중지하라는 문구가 뜰겁니다.
그 때, 타이밍 맞춰서 '안함' 이나 '다시시작 아님'을 클릭 해주시기 바랍니다.
하지만 이 기술(?)을 거의 이제 안먹히더라구요,,, ㅠㅠ
그럼 이제 제대로 한번 뚫어봅시다! 고급스럽고 멋있게!!
실전! 좀비프로세스 Batch를 이용해 죽이기!!
좀비 프로세스는 말 그대로 죽여도 다시 살아나게 됩니다. 그렇기때문에 사실상 비밀번호를 입력하고 제거하는 수 밖에 없죠.
아님 포맷을 하거나, 그렇거나,...
그럼 이제 작동하는 원격프로그램의 명칭을 알고, 모양도 알아야 합니다.
그렇기 위해서는 우선 'Ctrl + Alt + Del' 키를 눌러 작업관리자를 실행합니다.
그러면 프로세스 탭이 있을텐데 그리로 들어간 후 원격관리 프로그램의 프로세스를 찾습니다.
아니면 CMD를 열어서 tasklist를 이용하여 찾아줍니다.
이들을 작업끝내기를 하든 CMD를 열어서
taskkill -F -T /PID (좀비프로세스)_Service.exe
taskkill -F -T /PID (좀비프로세스)_Client.exe
를 입력하여 프로세스를 종료 시켜 봅니다. 그러면 곧 작업표시줄에도 그렇고 잠시 아이콘이 사라졌는데 곧 다시 켜지고 맙니다.
이를 없애기 위해 일일이 명령어를 쓰지 않아도 되는 반복문을 이용하여 편의를 누려 보겠습니다.
새 텍스트 문서를 열어줍니다.
아래 양식을 바탕으로 작성해 줍니다.
@echo off
:loop
set /a a+=1
echo Now is %a% Looping....
echo.
echo ............................................................
taskkill -F -T /PID (좀비프로세스).exe
cls
taskkill -F -T /PID (좀비프로세스)_Service.exe
cls
goto loop
@echo off 는 batch파일의 중요한 요소입니다.
:loop는 loop라는 영역 안으로 들어 가겠다 라는 것이고,
set /a a+=1 은 a라는 변수를 선언하고, 값에 1을 증가하겠다는 의미입니다.
echo는 문장을 출력해줍니다.
echo. 의 경우에는 엔터 즉, 개행(줄바꿈)기능을 제공합니다.
그 밑에 내가 사용할 명령어를 입력하시고, cls는 프로그램내의 출력내용을 지워주는 고마운 녀석입니다.
goto loop는 다시 loop영역으로 돌아가라는 건데, 이렇게 되면 계속 loop영역안에서 돌고돌기 때문에 무한루프가 생겨 a는 계속 1씩 더 해질거고, 정지시킬때 까지 반복될 것 입니다.
저기 붉은색 부분이 명령어가 들어갈 부분입니다.
이렇게 해서 다른이름으로 저장하기 눌러서 확장자 명을 *.bat로 저장시키면 완성입니다!!
이 프로그램을 실행 했을때는 계속해서 자동으로 원격관리 프로그램과의 연결은 끊기지만, 프로그램을 끄게되면 조금 있으면 프로세스가 다시 살아나기 때문에 필요할때만 사용하시길 바랍니다.
누구나 다 따라할 수 있는 재미있는 강의였습니다.