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