Util

죽지않는 프로세스를 계속 죽여보자! (feat. batch)

Limetime 2018. 5. 26. 13:00
반응형

죽지않는 프로세스 죽이기.

사실상 이번에 다루는건 죽지않는 프로세스. 

(저의 의도는 좀비프로세스를 죽이는 것입니다.)

즉, 좀비프로세스를 반복문을 이용하여 자동으로 계속 죽여주는 역할을 하는 프로그램을 만들어 보도록 하겠습니다.~

우리는 배치(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로 저장시키면 완성입니다!!

이 프로그램을 실행 했을때는 계속해서 자동으로 원격관리 프로그램과의 연결은 끊기지만, 프로그램을 끄게되면 조금 있으면 프로세스가 다시 살아나기 때문에 필요할때만 사용하시길 바랍니다. 

누구나 다 따라할 수 있는 재미있는 강의였습니다.





반응형