카테고리 없음

김강민 : Unifox / 배치 스크립트 프로젝트

keleck 2024. 2. 22. 03:03

제작동기.

선린고의 정보보안과에는 다른 학과처럼 다양한 전공 동아리가 있다. 가장 유명한 layer7을 비롯해 ai와 관련된 emotion, 네퓨즈 기타 등등. 그런데, 그중에 다소 애매한 위치의 동아리가 하나 있다. UNIFOX. 정보보안과에 있으면서 최초로 동아리가 만들어졌을 때는 아예 운영체재 동아리였던 되다가. 지금은 코딩 전문 동아리로 노선을 틀려고 시도 중인. 다른 동아리가 자기 동아리는 무엇을 하는 동아리다라고 당당히 말할 때 할말이 없어 조용히 있는 상황이 나는 안타까웠다. 우리 동아리도 해킹도 하고, 네트워크도 하고, 웹도 할 수 있는데! 그걸 알아주는 사람이 없다는 사실이 안타까웠다. 그래서, 다소 맞지 않지만. 특별한 도전을 해보고자 했다. 학교에서도 배워본적 없고, 동아리에서도 개념만 들어봤던 것. 바로, 컴퓨터 바이러스 개발이다. 비록 제대로 배워본 적도 없고, 결과물도 변변치 않을지라도. 이게 우리 동아리를 다른 사람의 기억 한 켠의 자그마한 구석탱이에라도 기억되게 해주면 좋겠다.

 

세부.

시작하기에 앞서 배치 스크립트가 무엇인지 설명하겠다.

배치 스크립트란 윈도우의 배치를 조작하는 스크립트를 말한다. 이해하기 쉽게 비유를 들어보자면, 우분투의 명령어의 윈도우 버전이라고 보면 된다.

 

배치 스크립트는 메모장에 명령어를 적고 메모장의 확장자를 bat으로 저장하는 것으로 사용할 수 있다. 이 bat을 exe로 만들면 수정할 수 없는 바이러스 하나가 완성되는 것이지만, 거기까지는 불필요해 보여 하지 않았다. 

 

완성된 바이러스는 컴퓨터에서 실행되면 시작파일에 스스로를 복제하고, 컴퓨터가 실행될 때마다 자기자신을 복제해서 다른 파일에 이식시켜두는 기능을 가진다.

 

코드는 이렇다.

메모장으로 쓴 코드들. 그렇다. 손코딩이다.

 

코드에 대한 간단한 해설을 덧붙이자면,

@echo off는 실행창이 나오지 않게 해주는 명령어다.

set name=%username%은 변수로, 컴퓨터마다 바뀌는 사용자의 이름을 담은 변수이다.

set where은 현재 파일 위치를 담은 변수다.

set start=뭐시기뭐시기는 컴퓨터가 실행될 때 작동하는 파일을 담아두는 경로를 담아둔 변수이다.

if문은 현재 위치가 start가 아니면 바이러스를 start에 복제해 주고, start에 있다면 D드라이브에 복제한다.

밑의 echo문들은 위 코드를 복사한 파일 하나를 추가로 생성하는 것, 기능은 동일하다.

 

시연영상.

 

 

느낀점.

사실, 바이러스라기에는 다소 심심한 느낌을 받았을 것이다. 컴퓨터가 암전되지도 않고, 파일이 지워지지도 않는데다가, 딱히 파일을 잠그고 윈도우를 못 쓰게 만드는 종류가 아니니까. 여기에는 슬픈 사연이 있다.

나도 처음에는 윈도우를 망가트리고! 파일 확장자를 바꿔 버리고! 필수 파일을 없애버리는 데다가! 눈뽕 공격으로 물리적으로 컴퓨터를 사용하지 못하게 하기! 같은 바이러스를 만들었다. 인간의 음습함은 끝이 없어, 오히려 이런 종류가 훨씬 자료가 많더라.

그런데 그거 아는가? 결국 바이러스를 만들어도 결과물은 실행해 봐야 알 수 있다는 걸?

배치 스크립트를 익힌지 얼마 안되는 어느날. 배치 스크립트의 위험성을 제대로 몰랐던 어느날. 나는 판도라의 상자를 열었고, 컴퓨터를 리셋시켜야 했다.

그후, 배치 스크립트의 위험성을 몸으로 체험하는 값진 경험을 치르고 노선을 강제로 틀었다.

왜냐하면, 내 낡은 노트북이 비명을 질렀거든... 두번 지르게 하면 노트북 하나 보내겠다 싶어서 자가 복제 바이러스로 노선을 변경했다.

동생을 조지고 싶었던 나쁜 악당은 자기 꾀에 자기가 빠졌다는 흔한 동화가 내 이야기인줄 몰랐지...

여러모로 배운게 많았다.

정말 많았다.

솔직히 학교에서는 정보보안 이론 가르칠 시간에 배치 스크립트의 위험성을 가르쳐야 한다.

각설하고, 이번 프로젝트는 배치 스크립트라는 생소한 개념을 배우며 내 컴퓨터 실력을 전체적으로 향상시킬 수 있는 시간이었다. 농담이 아니라, 진짜로 누구라도 네트워크 프로세스가 날아가고. 윈도우가 꺼지고. 블루 스크린 뜨고. 파일이 개난장으로 꼬이고. 확장자가 지 멋대로 바뀌면 누구라도 컴퓨터 실력이 좋아질 것이다. 그게 나였고.

힘들고 괴로웠던 프로젝트였지만 그래도 제대로 복구하고 그럭저럭 나쁘지 않은 결과물까지 내서, 배울 점도 많았고 재밌기도 했던 프로젝트였다.