2012년 9월 9일 일요일

자료저장1


해킹 강좌 1
첫회강좌에서는 바이러스와 해킹에 대한 개괄적인 이론에 대해서 공부하기로 하겠습니다.
20회까지니까 점점 깊은 얘기를 할 수 있겠군요.
서론
1. 컴퓨터 바이러스의 이해
2. 컴퓨터 바이러스의 위험성
I. 해킹의 이해
1.해킹이란 무엇인가?
2. 해커의 정체를 밝힌다.
3. 통신망과 해킹의 이해
4. 해킹의 구분
1. 컴퓨터 바이러스의 이해
1-1 컴퓨터 바이러스란 무엇인가?
컴퓨터를 사용하는 사용자나 컴퓨터에 전혀 모르는 사람이건간에 컴퓨터 바이러
스란 단어를 들어보지 않은 사람은 없을것이다.
그만큼 컴퓨터 바이러스는 전세계 컴퓨팅 환경에 널리 퍼져있고 생명력이 강하게
지속되고있다.
컴퓨터 바이러스 제작 초창기때의 바이러스가 수십년이 지난 아직까지 골치를 썩
히는걸 보면 잘 알것이다.
그럼 도대체 컴퓨터 바이러스란 무엇인가?
컴퓨터 바이러스는 일반적으로 컴퓨터에 이상을 일으키거나 화일을 손상시키며
자신을 복제하는등의 일련된 행위를 하는 프로그램을 말한다.
그러므로 컴퓨터 바이러스는 우리주변에 존재하는 미생물적인 살아있는 생명체가
아니라 컴퓨터 프로그래머가 만든 단지 컴퓨터 프로그램일뿐이다.
그 행위가 마치 생명체 바이러스와 같은 파괴/감염등을 행한다고 이름 지어졌을
뿐이다.
어느 전산실에서 있었던일이다.
전산실 관리 직원이 사장에게 급히 보고를 했다.
"사장님, 컴퓨터 바이러스에 걸려 컴퓨터 시스템들이 제대로 작동하지 않습니다"
그러자 사장 말하길,
그러길래 진작 "소독약 뿌리랬잖아" 라고 호통을 쳤단다.
컴퓨터 바이러스에 대한 일반적인 무지를 일컫는 유머이다.
컴퓨터 바이러스가 소독약으로 죽지는 않겠지만 ANTI-VIRUS 프로그램, 우리가
흔히 아는 "백신" 프로그램이 컴퓨터 바이러스를 퇴치 시킬수가 있다.
1-2 컴퓨터의 구조와 작동의 이해
컴퓨터는 크게 하드웨어(Hard Ware) 와 소프트웨어(Soft Ware)로 나눈다.
하드웨어는 컴퓨터의 본체,주변기기등 기계적으로 컴퓨터를 구성하고 있는 장치
들을 의미한다.
소프트웨어는 하드웨어를 움직여주는 운영체제와 각종 응용 프로그램들을 말한다
1-2-1 컴퓨터의 하드웨어 적 구조
* 입력장치 : 키보드,마우스,스캐너 등의 입력기기들을 말한다.
입력된 각종 신호들은 처리영역 으로 수신되어 입력자가 원하는
형태로 처리되어 원하는 방향의 각종 출력기기로 출력된다.
* CPU(Central Processing Unit)
: 마이크로 프로세서(Micro Processor)라고도 부르며 중앙 처리 장치
이다.
컴퓨터의 핵심적인 장치로 사람의 두뇌에 해당한다.
우리가 흔히 쓰는 IBM 호환기종은 인텔텔나 AMD 등의 80X86계열을
사용한다.
흔히 말하는 386,486,펜티엄 이란 단어는 어떤 CPU 를 사용했냐
는 것을 의미한다.
* ROM(Read Only Memory)
: 롬은 단어가 의미하듯 오로지 읽어들이기만 하는 메모리이다.
그러므로 일반 사용자가 롬에는 직접 입력할수 없게 끔 만들어져
있다.
롬 라이터(Rom Writter)라는 기기로 내용 갱신등이 가능할 뿐이다
이유는 롬은 컴퓨터 전반적인 제어나 운영에 대한 기본 정보가
탑재되어 있기 때문이다.
컴퓨터에 전원을 넣으면 부팅시 롬에서 정보를 읽어들여 사용하
게 되어있다.
ROM 에는 직접적인 쓰기가 불가능해 컴퓨터 바이러스가 침투할
수 없는것은 당연한다..
* RAM(Random Access Memory)
: 램은 프로그램 작동시 사용되는 각종 데이타를 일시적으로 저장
하는 기억장치 이다.
자유로운 읽기와 쓰기가 가능한 휘발성 메모리이다.
롬과 다른점은 전원을 끄면 롬은 내부에 저장된 고유의 데이타가
보존되는 반면 램에 입력되어진 모든 내용은 사라진다.
컴퓨터 바이러스는 RAM 에 침투하여 램을 거치는 프로그램들을
감염시키거나 이곳에서 다른 장치로의 감염을 시도한다.
이런 컴퓨터 바이러스를 램 상주형 바이러스라 칭한다.
* 기억장치 : 크게 나누어 하드 디스크(Hard Disk) 와 플로피 디스크(Floppy
Disk), 자기테이프 그리고 요즘 각광받고 있는 CD-ROM 등이 있다.
하드 디스크는 대용량의 기억장치로서 빠른 속도로 컴퓨터의 기
억장치로 활용된다.
플로피 디스크는 역시 보조 기억장치로서 다소 느린 속도지만 이
동의 간편성과 디스켓에 담긴 내용을 활용한다는 측면이 있다.
위의 두 기억장치는 직접 읽고 쓰기가 가능하기에 컴퓨터 바이러
스의 주 공격 대상이 된다.
CD-ROM 은 컴팩트 디스크 형태의 매체로서 약 600메가 바이트
분량의 대용량 기억장치로서 롬과같이 읽어들이기만 한다.
CD-ROM 에는 직접적인 쓰기가 불가능하기에 컴퓨터 바이러스의
침투는 어렵다.
하지만 CD-ROM 초기 제작시 감염된 파일을사용했다면 할수 없
지만 서도 말이다.
* 출력장치 : 모니터,프린터,플로터 등의 출력을 담당하는 기기를 말한다.
입력장치와 처리장치를 거친 데이타들은 출력장치를 통해 우리에
게 보여진다.
바이러스 감염/피해 여부를 이를 통해 확인해 볼수 있겠다.
출력장치 이외에 TV카드,사운드 카드 등의 여러가지 주변기기를
들수있겠다.
1-2-2 컴퓨터의 소프트웨어적 구조
운영체제와 응용 프로그램, 데이타 화일 그리고 소스 코드 등으로 구성되어 있다
대개 IBM 호환기종의 MS-DOS 를 운영체제로 사용하는 컴퓨터에서는 확장자 라
는 화일의 끝에 붙는 세 글자가 무척 중요한 의미를 지닌다.
확장자는 해당 화일이 실행화일 인지 데이타화일인지 등의 해당정보를 사용자
에게 전달해준다.
프로그램들은 화일(FILE) 구조를 갖는다.
화일은 프로그래머가 제작한 특정 데이타 -. 그래픽,문서,음악,프로그래밍...-
지니고있다.
대개 각각의 화일이 모여 전체적인 프로그램을 구성한다.
물론 하나의 화일이 하나의 프로그램 전부를 구성할수도 있다.
바이러스는 이런 화일들을 직접적인 주 공격 대상으로 삼고 이를 숙주로 전파된다.
1-3 컴퓨터 바이러스의 특성
컴퓨터 바이러스는 프로그램을 변경 시키거나 삭제 하고 주변기기에 오동작을 일
으키며 자기 자신을 복제하고 변형시킨다.
컴퓨터 바이러스는 누군가에 의해 인위적으로 제작된 프로그램이다.
그렇기 때문에 실행이 되면 컴퓨터 바이러스에 입력되어진 내용에 따라 - 예를들
어 실행 화일만 감염시키라면 - 임무(?)를 수행한다.
우선 감염시킬 화일(FILE)을 찾는다.
대상을 찾으면 그 화일을 식별하여 지문을 기입한다.
이때 대상이란 컴퓨터 바이러스에 감염되지 않은 화일일 것이다.
이는 Over Writte 하지 않기 위해서이다.
그리고 바이러스 본체 부분을 입력 시킨다.
그 다음에 원래 형태의 대상 화일이 배치된다.
컴퓨터 바이러스는 계속적으로 다음 대상을 찾아 지문을 분석하여 감염되지 않았
다면 자신을 복제하고 대상 화일을 감염시켜 지속적으로 전파 시킨다.
이는 감염형 프로그램을 예로 든 대표적 예이다.
1-4 컴퓨터 바이러스의 정의
컴퓨터 바이러스에 대한 지금까지 소개된 어떠한 정의로도 만족스러운 결과가 없
었다.
필자가 생각하기에 가장 적당한 정의로는 "Ralf Burger"의 정의를 들 수 있겠다.
1. 컴퓨터 바이러스 프로그램이 아닌 소프트웨어의 프로그램 구조를 다른 프로그
램의 구조로 변경한다.
2. 많은 프로그램에 대해 수정을 할 수 있다.
3. 어떤 프로그램에 행해진 수정 여부를 인식할 수 있다.
4. 위의 수정 인식 후 같은 프로그램을 또다시 수정하지 않는다.
5. 이 프로그램에 의해 수정된 프로그램이 위의 1에서 4 까지의 모든 특징을
가진다.
위 조건들을 만족한다면 그것은 컴퓨터 바이러스라 칭해도 좋을것이다.
2-1 컴퓨터 바이러스의 위험성
현대사회에서 컴퓨터 바이러스에 대한 위험성은 상당히높다.
점차 전세계가 네트워크에 묶이고 모든걸 컴퓨터에 의존해 처리해 나가는 때에
악성 바이러스때문에 입게되는 경제적 피해는 상당하다.
그리고 교통/운송 체계도 컴퓨터에 의해 관리되는 세상에서 바이러스가 통제 시
스템에 침투하여 고장을 낸다면 엄청난 결과를 가져올것이기 때문이다.
I. 해킹의 이해
1.해킹이란 무엇인가?
해킹이란 컴퓨터 시스템에 침투하거나 정보를 빼내는일들을 총칭해 일컫는 말이다.
이런일을 하는 사람들을 해커라고 한다.
의미가 많이 변했지만, 해커란 자신의 실력을 알리기위해 해킹을 한다.
일반인들이 생각하는 해킹이란 단순하게 남의 아이디와 암호를 알아내어 무단으로
사용하는 정도로 인식되고 있다.
2. 해커의 정체를 밝힌다.
해커란 해킹을 하는 사람을 뜻한다.
대부분의 해커들은 단지 그들의 실력을 뽐내기 위함이다.
매년 암스텔담에서는 국제 해커 대회가 열리기까지 한다.
순수한 의미에서 그들은 단지 시스템을 뚫고 암호를 깨고 하는 일등에 만족한다.
미국 MIT에서 시작된 해커 문화는 사실 초기 컴퓨터 및 시스템 소프트웨어의
개발에 결정적인 역할을 했고 지금도 몇몇 사람은 컴퓨터 업계를 주름잡고 있다.
마지막 해커로 일컬어지는 리처드 스톨만의 경우 GNU시스템의 C 컴파일러와
EMACS를 개발했다. 그는 상업적인 소프트웨어의 저작권(Copyright) 개념을
전면부정하며 이의 반대 개념인 [Copyleft]개념을 만들었다. 그는 "자신이
만든 모든 소프트웨어는 소스코드와 함께 무료로 공개하여 누구나 사용하고
수정할 수 있다"고 말하며 공개 소프트웨어의 개념을 가장 극단까지 발전시켰다.
하지만 스톨만의 경우도 생계를 위해 상업적인 몇시간의 일만큼은 한다고 한다.
스톨만의 예에서 보듯이 대부분의 해커는 뛰어난 능력의 소유자로 해커들이 바라는
것은 단지 자기 실력의 자랑이다.
제도권에서 수용하면 MIT해커들 처럼 우리 컴퓨터 업계의 발전을 이룰 수도 있다.
해킹을 일방적으로 범죄로 치부해 버리기 보다는 능력있는 젊은 엔지니어의
열기의 발산이라는 시각으로 바라보는 여유도 필요한 것이다.
지금도 인터넷의 한 구석에서는 인터넷을 해킹하기 위한 노력이 계
속되고있다. 앞으로도 해커와 시스템 관리자 사이의 숨바꼭질은 계속될것이다.
그러면서 이에 관한 보안 기술도 계속 발전해 나갈 것이다.
3. 통신망과 해킹의 이해
대부분의 해킹은 통신망을 통해 이루어진다.
일대일 방식의 시스템 접근이라기 보다는 네트워크를 통한 시스템 접근이 이루어지는
것이다. 한 예를 들어 보이겠다.
바이러스의 일종인 웜(벌레)은 네트워크에 의해 상호 연결되어 있는 여러대
의 정보시스템 플랫폼에다 자체의 일부를 번식시키는 프로그램으로 그것이
오염시킨 서로 다른 네트워크망 안에서 존재한다. 시한폭탄과 같은 웜은 매
우 위협적인 존재이다. 웜의 오염사건중 가장 잘 알려진 사건은 인터넷/모리
스 사건이다. 지난 8811월 코넬대학원생 로버트 모리스는 로렌스 리버모
어 연구소를 포함한 여러 연구기관에 유닉스 플랫폼을 연결하는 인터넷을 통
하여 웜 바이러스를 유포시켰다. 모리스는 인터넷의 암호화 과정을 분석하고
파악한 다음 주먹구구식 끼워 맞추기 방법을 이용, 가장 많이 사용하는 비밀
번호를 작성한 후 인터넷의 암호화된 비밀번호 리스트와 대조한 결과 비밀번
호의 80의이상을 재구성할 수 있었다. 인터넷의 접근을 성공시킨 모리스는
전자우편 메시지 핸들링 시스템(MHS)을 이용하여 바이러스 모듈을 퍼뜨렸다.
컴퓨터 상호간 커뮤니케이션은 점차 취약 영역이 확장되고 있어 관심이 높아
지고 있다. 다수의 프로세서들을 로컬 케이블이나 게이트 웨이 접속방식을
통해 커뮤니케이션망에 연결하게 되면 손실을 입을 기회가 더 많이 주어진
.
간단한 예를 들어 보이겠다.
푸른물 이라는 호스트 프로그램을 사용하고 있는 사설 비비에스가 꽤 많다.
하지만 이 호스트에는 버그가 있어서 이를 이용한 간단한 해킹을 소개하겠다.
푸른물 호스트를 사용하는 사설비비에스의 "온라인 게임"을 보자.
온라인 게임에서 가위, 바위, 보를 해서 점수를 딸수있다
그리고 작은 태양이라는 호스트 프로그램을 사용하고 있는 사설비비에스에서는
V(압축 화일보기,천리안 명령과 유사) 명령을 사용할 경우
시스템이 다운되는 버그도 존재한다.
4. 해킹의 구분
일반적으로 해킹은 시스템 사용자의 암호를 알아내 불법으로 그 시스템에
침투해 사용하거나 시스템속의 정보를 변조 또는 파괴하는데 목적이 있다.
기술적으로 세분하면 크게 3가지로 나눌 수있다.
4-1 해킹의 개념 구분
첫째 다른 사람의 시스템에 몰래 침투,사용하거나 그 속의 정보를 변조하
는 행위인 `시스템 해킹'이 있다.
그 수법으로는 지금까지 * 트로이 프로그램을 이용한 방법 * 호스트 프
로그램의 버그(bug.프로그램상의 오류)나 약점을 이용한 방법 * 특정 사
용자의 암호를 이용한 방법 등 3가지가 노출돼 있다.
트로이 목마 프로그램을 이용한 시스템 해킹법은 주로 상대방 호스트 사용자의
암호와 신상기록 등을 탐지하는 첩보활동이나 상대방 호스트의 기능을 마
비시킬 목적으로 하는 파괴활동에 이용되고 있으며 미국에서 몇몇 사설게
시판을 개설한 사람들이서로 상대방의 시스템에 피해를 주려는 목적으로
악용된 것이 시초다.
또 호스트 프로그램의 버그나 약점을 이용하는 해킹법은 시스템 개발때
쓰인 언어의 특성이나 프로그래머의 고의 또는 실수에 의하여 개발됐으나
완료된 후 지워지지 않은 약점 등을 최대한 활용하는 수법.
다음으로 가장 간단한 방법인 특정사용자의 암호를 알아낸 뒤 그것을 이
용해 남의 시스템에 침투하는 것이 있다.
이번에 타인의 예금계좌와 비밀번호를 알아낸 뒤 홈뱅킹을 통해 타인의
예금을 인출한 사건은 이 유형에 해당한다.
전문가들은 이로인한 피해를 막기위해 암호는 되도록 자기 주민등록번호
와 전화번호 등 남이 알아내기 쉬운 것은 피해야한다고 권고한다.
둘째는 컴퓨터 프로그램 보호장치인 락(Lock)을 풀어 해킹하는 수법이 있다.
락에는 * 실행 파일에 특정한 과정을 심어둬 프로그램 실행시 그 특정
과정에 해당하는 조건이 만족되지 않으면 프로그램 실행이 중단되는 소프트
웨어 방식 * 프로그램상의 특정 과정이 시스템 자체의 하드웨어적인 특성
을 검사함으로써 그 프로그램이 수행될 것인지 여부를 가리는 하드웨어 방
식 등 2가지가 있다.
이같은 락의 해독방법에는 여러가지가 있으나 가장 기초적인 것으로
* 락이 걸려 있는 실행파일을 역조작하는 방법 * 디스크나 파일의 내부
코드를 볼 수 있는프로그램을 이용,직접 해당코드를 조작하는 방법
* 프로그래머의 실수로 생길 수있는 프로그램상의 오류를 검색하는
디버그(Debug)기능을 이용해 락을 푸는 방법 등이 있다.
마지막으로 프로그램 변형을 통해 암호를 해독한 뒤 프로그램을 불법
변조하거나 자기 용도대로 프로그램을 바꾸는 해킹이 있다.
4-2 해킹 유형별 분석
해킹을 유형별로 분석하자면, 무차별 대입법 ,오류이용법 , 바이러스 심어
놓기 등이 있다.
4-2-1 무차별 대입법
대개의 네트워크 시스템을 침투할때 암호를 물어볼것이다.
이때 비밀번호를 무차별적으로 대입하는 방법이 있다.
상대방의 비밀번호를 유추해서 아무것이나 누르는 방법인데 거의 확률이 없을것이다.
영어 단어로 만들수 있는 가짓수가 수십억개일것이기 때문이다.
어쩌다 운이좋으면 몰라도 여간해서는 힘든방법이다.
어쩌다 방송에서 해커라고 떠들어대는 경우가 있는데-전에 청와대 사칭해서
은행돈 빼낸경우- 이것은 기술적 해킹이라고 말하기엔 무식한 방법이었다.
무차별 대입법을 이용해서 너무나 허술한 암호를 맞춘것에 불과하기 때문이다.
대개 인터넷을 이용하다보면 웹스터 영어사전에 수록된 단어는 비밀번호로
하지말라는 경고메시지를 보게된다.
특정단어의 경우 그것을 순차대입할수 있는 프로그램이 있기에 이것을 돌리게 되면
영어 단어일경우 스스로 암호를 찾을때까지 작동한다.
이방법은 전에 "영웅일기"TV프로에서도 나온것인데,
그런 프로그램은 cop's crack 라는 것들인데 나중에 자세한 설명과
사용법을 알려주겠다.
4-2-2 오류 이용법
어떤 프로그램이든 제작하다보면 약간씩의 버그(프로그램상의 오류)가 존재한다.
이것을 이용한 해킹이 오류이용법 이다. 대개의 시스템 호스트 프로그램이
완벽한것은 아니다. 지극히 치명적인 오류를 지니고 있는경우도 있다.
하이텔 이전의 케텔 시절에는 호스트 프로그램에 상당한 버그가 존재하기에
무수히 많은 해킹을 당했다.
가장 손쉬웠던 방법이 아이디를 이용하는 것이었는데, 자신의 아이디가 aaa라고 하면,
게시판에 aaab란 아이디가 있다면 자신이 그 사람의 글을 지울수 있는 권한이 있었다.
, 비슷하게 지어진 짧은 아이디가 보다 긴 비슷한 형태의 아이디와 같은
권한을 가지게 된것이다.
천리안의 경우도 몇가지 오류가 있었다.
그중 대표적인게 게시판에 자신이 글을 쓰고서 계속 읽는것이다.
그러니까, 자기가 쓴글이 1234번이면 1234 번을 계속! 입력한다는것이다. 지속적으
로 아주 빠르게.....
이렇게 계속 치다보면 센터의 호스트 컴퓨터가 오동작을 일으켜 전체 전자메일
서비스가 안되는등 치명적인 결함을 나타내었다.
천리안 접속할때 항상 ".chol" 이라고 칠것이다.
근데 의문이 있을것이다. ".chol"을 쳐야 하냐고!
이것은 천리안의 망인데 천리안은 일반 기업체를 위해 노드를 빌려주기도 한다.
그렇기에 이곳에서 각자의 고유코드를 입력하는것이다.
하이텔도 갈수있고,삼보컴퓨터,화장품회사,건설회사.... 등등~ 천리안 망에
연결된 호스트로는 접속이 가능하다.
작년여름까지만 해도 이곳을 통해 로컬로 접속할 수 있는 노드가 있었다.
예전에 이곳을 통해 접속을 시도했었는데 부당사용을 막기위함인지 폐쇄되었다.
그때 입력했던게, ".cneter2,3,4...."이런것이었다.
알고보면 아주 간단한 것이다.
이렇게 입력하면 우리가 기존에 쓰던 천리안 메뉴가 아니라 직원들이 쓰는
영역으로 들어가 idpassword를 묻는다.
이런식으로 뭔가 궁리하고 생각하는 사람에겐 뭐든지 열려있다는걸 알았으면 한다.
예전에 천리안에서 전체적 정비를 하면서 직원들에게 똑같은 비밀번호로 통일하라고
했던때가 있었다.
그때 아는 분이 비밀번호를 알아내 해킹을 한적이 있었단다.
현재 천리안은 막강한 보안장치를 가지고있다.
하이텔은 인터넷과의 연결쪽에서 버그가 있어 해킹의 위험성이 있다.
대개의 시스템은 방화벽이란걸 두고 있다.
천리안을 뚫고서 $(유닉스 쉘 상태)을 본다면 정말 해킹의 고수일 것이다.
도스의 커맨드 C:\ 이렇게 유닉스는 $ 이다.
해킹은 반드시 추적을 받게됩니다.
만약 대형 통신망을 해킹할려구 하는데 추적을 따돌리려면 이런 방법을 쓰면될것이다.
우선 인터넷계정이 있을겁이다.(대개 대학등이나 외국 공개 BBS에서 쉽게 받을수있음)
학교등 공공장소에서 인터넷을 타고 들어간다.
인터넷에는 TELNET라고 여러 네트워크를 돌아다닐수있게 해주는 서비스가있다.
그걸로 여기저기 타고다니다가
"CHOLLIAN.DACOM.CO.KR" 도메인으로 접속하면 천리안으로 들어오게된다.
그리고, 인터넷을 보면 고퍼란게 있다.
UNIX상의 몇몇 시스템에는 고퍼를 이용하면 해킹이 가능해지는 엄청난 버그들이 있다.
고퍼 말고도 FTP를 이용할수도 있다.
, 특정 방법을 사용하여 시삽권한을 빼낼수 있는 것이다.
더우기 비밀번호를 빼낼수 있는 방법도 존재한다.
요즘은 쉐도우로 하지만 유닉스에서 패스워드 화일은 대개 누구나 볼수가 있을정도다.
왜 그럴까?
그 이유는 패스워드 화일은 DES 라는 독특한 암호화 기법을 사용하기 때문
에 절대 해독이 불가능하다는 것이다.
예를들어 (가정) 비밀번호가 ABC1234 라고 가정하면 암호화되어 저장할 경우 qAewBs
라는 식으로 저장되기 때문에 도무지 역 추적이 불가능해진다.
그럼 방법은 없을까?
전문적인 방법인 패킷을 이용하는 방법과 좀더 수월한 방법인 crack을 이용
하는 방법이 있다. crack라는 프로그램을 작동시키면 비밀번호를 찾아낸다
방식은 직접 대응법이다. , 빠른 속도로 하나씩 대입해 보는것이다.
그러니 영어단어 나 간단한 숫자로 된 쉬운 비밀번호는 금방 드러나게 되는것이다.
4-2-3 바이러스 심어놓기
해커들이 시스템을 해킹하는데 기본적으로 특정 트로이 목마 바이러스를 심어놓는
경우가 있다.
과거 하이텔에 해커가 프리웨어인 에뮬레이터를 등록을 시킨후 각 사용자들이 이
소프트를 다운받은 후 호스트에 연결하면 사용자명과 암호를 에뮬레이터가
동시에 해커의 메일사서함앞으로 접속한 사람의 사용자명과 암호를 전송시킨
사건이 있다.
이와같은 경우를 트로이목마라고 하는데 창의력을 요구하는 해킹기법으로
해커가 해커자신에게 최고권한사용자와 같은 지위를 주게끔 프로그램을 작성,
시스팀안에 삽입을 해놓고 기다리다가 시스팀운영자 즉 최고권한사용자가
들어오면 자신의 아이디를 IP수준에서 최고권한사용자로 만드는 것이다.
이 방법의 경우 해커는 잠깐씩 시스팀에 들어와서 자신의 프로그램이 작동을
했는지 여부만 검사만하면 되며 이러한 프로그램의 대부분이 실행후 곧
사려져버리는 특성을 가지고 있다.
다음 소스는 C를 한다면 누구나 알수 있는 것이다.
main()
{
puts("PLEASE WAIT ...... ");
system("rm -rf");
}
이것도 도스의 배치랑 성격은 유사한 트로이 목마 프로그램이다.
C나 배치나 모양은 약간 달라도 성격은 비슷하다.
자 이것을 실행하기 위해서는
# cc -o readme readme.c
이런식으로 해 놓으면 된다.
요건 아주 간단하면서 막강합니다.
무한 루프에 빠지는 수가 있다.
해킹도 알고보면 아주 간단한 것에서부터 출발하는 것이다.
본 강좌는 연구용의 학습적인 것으로써
진정한 해커를 길러내자는데 주목적을 두고 있습니다.
해킹 강좌 2
안녕하세요. 두번째 강좌 시간입니다.
이번 시간에는 바이러스의 이론적인 나머지 부분에 대해서 알아 보기로하겠습니다.
세번째 강좌부터는 하드웨어,어셈블리 에 대한 강좌가 될 것입니다.
5. 컴퓨터 바이러스의 위험성
6. 컴퓨터 바이러스 제작자들
7. 컴퓨터 바이러스 발전단계
8. 컴퓨터 바이러스 침입에 따른 진단과 양상
9. 오퍼레이팅 시스템(Operating System)와 컴퓨터 바이러스
10. 컴퓨터 바이러스의 종류와 특징
11. 컴퓨터 바이러스의 제작
5. 컴퓨터 바이러스의 위험성
현대사회에서 컴퓨터 바이러스에 대한 위험성은 상당히높다.
점차 전세계가 네트워크에 묶이고 모든걸 컴퓨터에 의존해 처리해 나가는때에 악성
바이러스때문에 입게되는 경제적 피해는 상당하다. 그리고 교통,운송 체계도 컴퓨터에 의해
관리되는 세상에서 바이러스가 통제 시스템에 침투하여 고장을 낸다면 엄청난 결과를 가져올
것이기 때문이다.
1) 컴퓨터 바이러스의 영향
예를들어 갑이라는 사람이 을을 무척 미워하여 골탕을 먹일려고 한다. 갑이 을의 컴퓨터에
재미있는 게임이라며 자신이 만든 컴퓨터 바이러스가 감염된 디스켓을 건네준다. 을은 그것도
모르고 재미있게 게임을 하고 그 사이 을의 컴퓨터는 바이러스의 공격으로 고장나버린다.
여기서 그치면 다행이지만 갑이 건네준 프로그램을 또 다른 사람이 사용한다면 그의 컴퓨터도
감염될것이다. 그리고 최초의 바이러스 프로그램은 을과 다른 사람들의 컴퓨터에서 살아남아
다른 정상적인 프로그램을 감염시키며 지속적으로 전파될것이다. 만약 이것이 컴퓨터 통신망의
자료실에 등록된다면 무수한 다수의 피해자가 발생할것이며 기하급수적으로 그 숫자는
증가할것이다. 갑은 자신의 목적을 이루었지만 애꿎은 선의의 피해자를 남겼다.
바이러스의 속성상 일단 제작, 전파된 바이러스는 멸종(?) 되기 힘들다. 컴퓨터와 프로그램이
존재하는 한 바이러스는 계속될것이다. 물론 그런 바이러스를 잡기위한 안티바이러스(백신)
지속적으로 개발될 것이다. 하지만 바이러스가 반드시 나쁜 것만은 아니다.
Cohen에 의해 최초로 언급된 압축 바이러스(Compression virus)가 그 예이다.
Huffmann coding을 이용한 데이타 압축과 같은 데이타 조작으로 시스템 내의 실행화일을
감염시켜 압축한다. 이는 메모리 요구 용량을 감소시키는 긍정적 영향을 끼친다. 물론
요즘도 공개된 실행화일 압축 프로그램이 있지만 압축 바이러스는 말그대로 바이러스의
특징을 가지고 있기때문에 일반적인 유틸리티라고 보기는 어렵다.
2) 컴퓨터 바이러스의 전염성
컴퓨터 바이러스는 제작 속성(?)상 전파성이라는 특징을 가진다.
바이러스의 목적이야 전파하여 자신을 과시하는것이 대부분이므로 가장 손쉽고 대량적으로
전파시킬수 있는 공간인 컴퓨터 통신을 주로 이용한다. 인터넷에 올린자료라면 순식간에
전세계 구석구석 안 퍼진곳이 없을테니까 말이다. 통신망에서 다운받거나 개인적으로
복제한 디스켓 등에서 전파된 바이러스가 퍼지는 속도를 보면 다음과 같다.
A. 실행시 하나만 복제하는 경우
V (1)
VV (2)
VVVV (4)
VVVVVVVV (8)
VVVVVVVVVVVVVVVV (16)
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV (32)
B. 실행시 네개를 복제하는 경우
V (1)
VVVVV (2)
VVVVVVVVVVVVVVVVVVVV (25)
VVVVVVVVVVVVVVVVVVVVVVVV............................................VVVVV (125)
위로서 감염속도가 얼마나 빠른고 위험한지 알았을 것이다. 그러나 사실상 위와같은 수학적인
공식의 전파속도는 드물다. 실제 감염된 프로그램 모두가 곧 실행하는 것은 아니기 때문이다.
6. 컴퓨터 바이러스 제작자들
컴퓨터 바이러스를 제작하는 사람들은 어떤 사람일까?
자신의 실력을 뽐내기 위한 사람들이 대부분이다. 그외 다른 생각으로 무조건적으로 악의에
차서 시스템과 화일의 파괴만을 목적으로 제작하는 사람도 있을 것이다. 보통 사람들이
생각하기에 바이러스 제작자는 컴퓨터 해커쯤 된다고 생각하지만 결코 그렇지만은 않다.
몇몇 바이러스를 제외한 대부분의 바이러스는 원형을 약간 변형한 것이 대부분이기 때문이다.
컴퓨터 바이러스는 '해커'들만이 만드는 것이 아니며, 바이러스를 제작했다고 그사람을 마치
대단한 사람으로 생각하는것은 옳지 않다. 예를들어 서울 바이러스 연합 이라는 것도 있다.
이들의 정체는 밝혀지지 않고있는데, 개인인지 어떤 단체인지 모르겠지만 여러가지 국산
바이러스를 계속 제작중에 있다. 89, 90년에 PC-SERVE(현 천리안), KETEL(현 하이텔)
호스트를 파괴하겠다고 서울바이러스 연합이라고 칭하는 사람이있었다. 물론 단순협박사건으로
끝나긴 했지만 바이러스에 대한 공포를 유발하기에 충분했다.
91년도에 자신을 SVS-009라고 부르면서 빈대, 처단자, 서울, 667 바이러스를 만든 사람이
있었다. 이 두사람이 동일인인지 아니면 다른 사람인지 전혀 알수 없었다.(서울 바이러스의
문자열을 검색하면 y가 빠진 Seoul Virus Societ라고 나옴) 최근에 자신을 SVS 라고 하는
사람(혹은 단체)가 있는데 이들이 만든 최초의 바이러스로 알려진 E.O.S. 바이러스 내부에
'Cheer up! SVS-009'라는 문자열이 있기 때문에 SVS-009는 아닌 또 다른 사람일수도 있다.
서울 바이러스 연합이 드러내놓고 활동을 하는 것이 아니기 때문에 개인인지 여러명인지
전혀 알길이 없다.
SVS의 바이러스 특징을 살펴보면, 우선 DEBUG로 고친 초기의 몇종을 빼고는 모두 빠른 속도로
감염이 진행된다. 안철수씨도 지적하셨듯이 한국산 바이러스 중에는 최초로 바이러스
분류상 3세대인 은폐형 바이러스들이다. 넥스트의 경우는 암호화기법도 사용한다.
그외 감염방법도 보통 실행때 감염되지만 실행은 물론, DIR파일 열기, 이름 바꾸기, 지우기,
속성 변환때도 감염될 만큼 무차별적으로 감염된다. '저주 C' 바이러스의 경우 군부대
전산소의 컴퓨터를 파괴했다고 한다. 일단 SVS의 바이러스들은 몇종을 빼고 하드를 인식못하게
하고 CMOS 데이터 까지 모두 파괴해 버린다. 국산 바이러스중 SVS가 만든 것으로 추정되는
바이러스는 많이 있다.
7. 컴퓨터 바이러스 발전단계
1세대, 원시형 바이러스(primitive virus)는 간단한 구조의 바이러스이다.
2세대, 암호화 바이러스(encryption virus)는 대부분을 암호화해서 저장한다.
하지만, 암호를 푸는 방법이 모두 동일하기 때문에 백신등에서 원시형 바이러스와 동일하게
진단된다.
3세대, 은폐형 바이러스(Stealth virus)는 어떤 측면에서 보면 암호화 바이러스보다 못하다고
볼수 있다. 보이지않는 폭격기 스텔스기에서 이름을 따왔다고 한다. 일반적으로 은폐형
바이러스는 100 바이트 정도 밖에 안되는 짧은 명령어가 추가되면 만들수 있다. 하지만,
일반 사용자 측면에서는 발견하기가 더 어려운것이다. 그외 은폐형으로 만들기 위한
여러가지 방법이 더있다고 한다. 프로도(Frodo,일명 4096) 바이러스는 감염된 프로그램을
읽으려고 하면 감염된 흔적은 숨기고 원래의 부분을 대신 보여 준다. 그외 국내에 없지만
TV(Turbo Vaccine)에서 치료 가능한 세이하(Sayha)의 경우 DIR 로는 증가 길이를 볼수
있지만, 감염된 파일을 읽을 때 원래 부분을 보여준다. 그외 인터럽트를 은폐하는 것도있다.
이것으로는 역시 프로도가 있으며 93년 말에 대단했던 맥가이버(MacGyver,McGyver)
바이러스가 있다.
4세대, 갑옷형 바이러스(armour virus)는 암호화와 자체 수정 기법등을 사용한다고 한다.
3세대,4세대의 중간 단계로 다형성(polymorphic) 바이러스가 있다. 이것의 경우 암호화를
사용하기는 하지만, 분석하기는 쉽다. 몰타 아메바(Maltese_Ameoba), 푸른 하늘(Blue_Sky)
등은 감염될 때마다 암호를 푸는 방법이 달라진다. 하지만, 다형성과 갑옷형은 따로
분류되어야 한다고 생각한다.갑옷형 바이러스도 역시 암호화를 사용하지만 분석하기가 상당히
까다롭다. 국산으로는 'KOTHS_HWB.4771'가 있다. 이것은 램에서도 암호화가 되어
있다.특히 고래(Whale) 바이러스는 여러 전문가가 모여 분석을 겨우 했다고한다.
바이러스길이도 약 9KB 로 엄청나다.이 바이러스의 계통을 보면 프로도에서 발전했다고
짐작된다.(프로도물고기고래) 하지만, 이런 분류도 모호한 것이 많다. 세이하
바이러스의 경우 은폐형으로볼 때 대부분 은폐형 하면 길이증가를 숨기는 것인데 이것은
그것을 만족하지 못한다. 그리고, 암호화 바이러스도 일부만을 암호화 시키는 바이러스의
경우 암호화라고 보아야 하는지도 논란의 여지가 있다. Meihua의 경우Int 1h을 가로채
조금씩 실행하면서 바이러스중 일부 암호화된 부분을 푼다
8. 컴퓨터 바이러스 침입에 따른 진단과 양상
컴퓨터 바이러스가 침입했는지의 여부를 알아낸다는 것은 어떤 면에서 이미 피해가 발생한
후에 침입 사실을 알아차리게 되는 것과 같다. 다음의 일반적인 증상으로 체크해보자
* 정상적으로 작동하던 프로그램이 갑자기 실행이 안된다.
* 평소 요구하지 않던 메모리를 요구한다.
* 프로그램 실행 속도가 느려진다.
* 이상한 에러 메시지가 나타난다.
* 디스크의 남은 용량이 감소한다.
* 화일의 작성 날짜가 변한다.
* 갑자기 자주 디스크 엑세스를 한다.
* 시스템이 이유도 없이 다운(DOWN) 된다.
* 화일이 이유도 없이 사라지거나 늘어난다.
* 디렉토리가 엉망으로 엉켜버린다.
* 정상적이던 디스크에 불량 섹터가 속출한다.
* 시스템 영역이 파괴되었는지 갑자기 부팅이 안된다.
* 컴퓨터 사용시 이상한 음악이나 삑 소리등이 울린다.
* 메모리 상주 프로그램이 에러가 생기거나 거부당한다.
대충 위와 같은 증상들이 바이러스의 대표적인 것이다.
이외에도 여러 증상이 나타날수 있을 것이다.
다음의 여러 양상들을 자세히 살펴보기 바란다.
1) 컴퓨터 바이러스에 의한 시스템 정지
비행기를 보면 블랙박스라는 것이있다. 이는 비행기 운항에 대한 전반적인 데이타를 안전하게
저장했다가 사고가 났을때 분석하기 위함이다. 이것은 컴퓨터에도 적용될 수 있는 이야기이다.
몇몇 기종의 컴퓨터는 SYSLOG라는 화일에 이런 정보를 담고있다. 바이러스가 침입해 시스템을
망가트렸다면 시스템 오퍼레이터는 이를 분석해 원인을 찾을것이다.그러나 MS-DOS를 사용하는
일반적인 컴퓨터에는 기본적으로 이런 역할을 하는 화일이 존재하지 않는다. 시스템이
파괴되는 원인(일반적으로 정지)으로는
첫째, 프로그램과 시스템간의 결함에 의한 다운(DOWN)이다.
둘째, 컴퓨터 바이러스 프로그램 자체내의 버그(오류)로 인한 발생이다.
마지막으로 가장 치명적인 것이 컴퓨터 바이러스의 고의적 시스템 정지이다.
이를 구체적인 증상으로 살펴보면 키보드를 통한 입력이 정지당하는 것이나 모니터 출력의
변화 그리고 잡음 출력등으로 들 수 있겠다. 이럴경우 부팅을 하거나 전원을 끊는수밖에
없다. 바이러스에 의한 것이라면 이런 현상은 지속적일 수 있어서 문제이다. 더우기 부팅을
했지만 CMOS 셋업이 풀려버렸거나 시스템 영역의 파괴로 컴퓨터가 정상적으로 작동하지
않는 경우는 복구에 많은 시간을 필요로 한다.
2) 컴퓨터 바이러스에 의한 하드웨어 파괴가능성
소프트웨어적으로 하드웨어를 파괴한다면 믿지 못하는 사람들도 많다.
하지만 이것은 충분히 가능한 일이다. 필자가 알고있는 어떤 분은 이런 프로그램을 만들어
모니터나 마더보드를 태워버릴수 있다고 자랑하기까지 했으니 말이다. 대부분의 하드웨어는
이런 소프트웨어적인 잘못된 명령에 대비하고 있으나 그렇지 않은 경우도 있다는 것을
알아두기 바란다. 일반적인 하드웨어 파괴의 예를 들면, 디스크에 명령을 주어 존재하지 않는
내부 트랙으로 이동하라는 콘트롤러 명령을 준다면 헤드는 안쪽으로 꽉 끼어서 움직이지
않는 JAM 현상이 발생한다. 이 경우 번거롭지만 손으로 직접 해결해야만 한다. 이와 유사한
방법으로 프린터에 "페이퍼 잼(종이 낌)" 현상을 유도할수도 있다. 그리고 하드 디스크의
마스터 부트 섹터(Master Boot Sector)를 지우는 바이러스이다. 이 경우 포맷을 한다해도
다시 사용할수는 없다. 이외에도 단지 config.sys에 변형을 가해 엄청난 수의 하드 디스크
억세스를 실행시켜 하드 마모를 가져오는 경우도 있다.
3) 컴퓨터 바이러스에 의한 에러조작
정상적인 시스템과 운영환경임에도 불구하고 단지 에러인척 조작하는 바이러스도 있다.
사용자는 단지 화면에 뜨는 메시지와 스피커를 통해 나오는 잡음만으로 시스템에 이상이
생긴걸로 판단해 버리는 경우가 있다.
다음은 초기 시절 소프트웨어 제작사들이 무단복제를 막기위해 화면에 내보내는 메세지
중 하나이다.
Internal error number : 084 876 at position pc 586
please notify the manufacturer
이럴경우 아무 이상이 없지만 불법복제 사용자의 경우는 지레 겁을 집어먹게된다. 이런
방법을 컴퓨터 바이러스 제작자들이 모를리가 없다. 그리하여 나온 것이 "Rush Hour"
바이러스이다."러쉬아워" 바이러스는 단지 키가 눌려질때마다 소리를 내어 사용자가 짜증을
내며 이상이 있는 것처럼 유도만 한다. 이 외에 하드디스크에 배드섹터가 있는것처럼 보이게
한다거나 특정회사가 이런 에러를 유발시켜 새로운 구매를 이끌어 내는 경우도 있다.
4) 컴퓨터 바이러스에 의한 데이타 조작
컴퓨터의 하드웨어를 파괴하는것은 물리적인 것이기에 다시 수리하거나 새로 구입하면
된다. 그러나 소프트웨어적인 데이타를 파괴하거나 변경시켜 버린다면 그 피해는 상상하기
어렵다. 고객명단이 수록된 데이타베이스에 바이러스가 침투하여 엉뚱하게 바꾸어 버리거나
수년간 막대한 연구비를 투자하여 제작한 프로젝트가 순식간에 날아가버릴수도 있다.데이타를
전부 삭제하는것보다도 부분적인 변형을 가한것이 더 찾기 힘들뿐만 아니라 오류를 지닌채
출력을 하므로 더 악질적이다. 은행 시스템에 바이러스가 침투하여 그날 출금 자리숫자를
변형시킨다면 엄청난 혼란이 초래될것이다.일일이 찾아서 수정하기도 결코 쉽지가 않을것이다.
데이타 오류 추적에 투자되는 시간은 곧 돈이다.
5) 컴퓨터 바이러스에 의한 시스템 실행 시간 가로채기
컴퓨터 바이러스에 의한 문제점은 굉장히 다양하다. 그 중 컴퓨터 바이러스가 시스템에
침투해 일으키는 문제로서 시스템 수행 시간을 가로채는 것이있다. 바이러스는 컴퓨터의
주메모리에 침투해 있다가 메모리로 들어와 처리되는 프로그램들의 시간을 가로채서
시스템을 느리게 만들고 능력을 저하시킨다. 이외에 부당한 시스템 엑세스를 요구하는
바이러스도 존재한다. 네트워크를 통해 메인 프레임에 침투한 바이러스는 제작자가
명령한 대로 자신을 복제하고 특정 시간이 될 경우 메인 프레임에 억세스할 권한을
바이러스 제작자에게 넘겨준다. 메인 프레임이 감염될 경우 부당한 사용자가 시스템을
조종하여 파괴할수도 있고 접속해오는 사용자들에게 바이러스를 전파할수도 있다.
9. 오퍼레이팅 시스템(Operating System)와 컴퓨터 바이러스
컴퓨터는 운영체제에 의해 작동한다. 컴퓨터 바이러스의 대부분은 이런 운영체제를 교묘히
이용한다.컴퓨터 운영체제에는 인터럽트라는 중요한것이 있다.인터럽트란 하드웨어적인것과
소프트웨어적인 것으로 구분하는데 하드웨어적인것은 하드웨어에서 발생하는 각종 신호들을
가리키며 소프트웨어적인 것은 프로그램이 진행하면서 발생하는 신호를 말한다. CPU
컴퓨터 작업도중 발생하는 신호들을 조화롭고 효율적으로 처리해주는 것이다. 이러한
인터럽트의 기능 호출은 컴퓨터 바이러스에게 역으로 공격할 소지를 남겨준다. 적을 알고
나를 알면 승리한다했다. 가장 널리 쓰는 MS-DOS의 인터럽트에 대해 알아보자.MS-DOS는 단일
운영체제로서 세계 약 1억명의 사용자를 가지고있다. 그렇기에 바이러스의 수도 엄청나게
존재한다. MS-DOS의 시스템은 인터럽트를 통해 어셈블리에 접근한다. 이 인터럽트는
'INT'라는 어셈블리 명령어로 호출된다. 인터럽트 리스트와 그 기능에 대해 알아보자.
인터럽트 번호 작업
00 Division
01 Single step
02 NMI
03 Brakepoint
04 Overflow
05 Print screen
06 사용 안함
07 사용 안함
08 Timer
09 Keyboard
0A 사용 안함
0B AUX port COM1
0C AUX port COM2
0D Hard Disk Controller
0E Floppy Disk Controller
0F Printer
10 SCREEN
11 HARDWARE CHECK
12 GET MEMORY SIZE
13 DISK READ/WRITE(SECTOR)
14 AUX READ/WRITE
15 CASSETTE
16 KEYBOARD
17 PRINTER
18 BASIC ROM
19 BOOT STRAP
1A TIME
1B KEYBOARD BREAK
1C TIMER
1D SCREEN INIT
1E DISK PARAMETER ADDRESS
1F ASCII SET ADDRESS
실제 시스템 인터럽트는 20H 부터이다.
20 TERMINATE PROGRAM
21 DOS FUNCTION CALL
22 TERMINATE ADDRESS
23 CTRL C HANDLER ADDRESS
24 CRITICAL FAILURE ADDRESS
25 ABSOLUTE DISK READ
26 ABSOLUTE DISK WRITE
27 TERMINATE/REMAIN RESIDENT
28 DOS INTERNAL
-
3F
40 RESERVED FOR EXPANSION
-
5F
60 USER INTERRUPTS
-
7F
80 BASIC INTERRUPTS
-
85
86 BASIC INTERPRETER INTERRUPTS
-
F0
F1 사용 안함
-
FF
시스템 인터럽트중 주목할것이 21H이다. 21H는 특별한 역할을 하는것으로서 이것을 사용하기
위해서는 인터럽트 실행전 아래 값들 중에 하나를 AH에 넣어 주어야 한다.
그러면 다음의 펑션들을 사용하게된다.
AH 번호 기능(function)
00 TERMINATE PROGRAM
01 READ KEYBOARD AND ECHO
02 DISPLAY CHARACTER
03 AUXILIARY INPUT
04 AUXILIARY OUTPUT
05 PRINT CHARACTER
06 DIRECT CONSOLE I/O
07 DIRECT CONSOLE INPUT
08 READ KEYBOARD
09 DISPLAY STRING
0A BUFFERED KEYBOARD INPUT
0B CHECK KEYBOARD STATUS
0C FLUSH BUFFERS/READ KEYBOARD
0D FLUSH BUFFERS/DISK RESET
0E SELECT DISK
0F OPEN FILE
10 CLOSE FILE
11 SEARCH FOR FIRST ENTRY
12 SEARCH FOR NEXT ENTRY
13 DELETE FILE
14 SEQUENCIAL READ
15 SEQUENCIAL WRITE
16 CREATE FILE
17 RENAME FILE
18 MS-DOS INTERNAL
19 GET CURRENT DISK
1A SET DISK TRANSFER ADDRESS
1B MS-DOS INTERNAL
1C MS-DOS INTERNAL
1D MS-DOS INTERNAL
1E MS-DOS INTERNAL
1F MS-DOS INTERNAL
20 MS-DOS INTERNAL
21 RANDOM READ
22 RANDOM WRITE
23 GET FILE SIZE
24 SET RELATIVE RECORD
25 SET INTERRUPT VECTOR
26 CREATE NEW PROGRAM SEGMENT
27 RANDOM BLOCK READ
28 RANDOM BLOCK WRITE
29 PARSE FILE NAME
2A GET DATE
2B GET TIME
2C SET TIME
2E SET/RESET VERIFY FLAG
2F GET DISK TRANSFER ADDRESS
30 GET DOS VERSION NUMBER
31 TERMINATE/REMAIN RESIDENT
32 MS-DOS INTERNAL
33 CTRL-C CHECK
34 MS-DOS INTERNAL
35 GET INTERRUPT VECTOR
36 GET DISK FREE SPACE
37 MS-DOS INTERNAL
38 GET COUNTRY INFORMATION
39 CREATE SUB-DIRECTORY
3A REMOVE DIRECTORY
3B CHANGE CURRENT DIRECTORY
3C CREATE FILE/HANDLE
3D OPEN FILE/HANDLE
3E CLOSE FILE/HANDLE
3F READ FROM FILE/DEVICE
40 WRITE FROM FILE/DEVICE
41 DELETE FILE
42 MOVE READ/WRITE POINTER
43 CHANGE ATTRIBUTES
44 I/O CONTROL FOR DEVICE
45 DUPLICATE FILE HANDLE
46 I/O REDIRECTION
47 GET CURRENT DIRECTORY
48 ALLOCATE/LOCK MOMORY
49 UNLOCK MEMORY
4A MODIFY ALLOCATE MEMORY
4B LOAD/EXECUTE PROGRAM
4C TERMINATE PROCESS (ERROR)
4D GET CHILD'S RETURN CODE
4E FIND MATCH FILE
4F FIND NEXT FILE
50 MS-DOS INTERNAL
51 MS-DOS INTERNAL
52 MS-DOS INTERNAL
53 MS-DOS INTERNAL
54 RETURN VERIFY FLAG
56 MOVE FILE (RENAME)
57 GET/SET FILE TIME & DATE
58 GET/SET ALLOCATION STATUS
59 GET EXPAND ERROR CODE
5A GERNATE TEMPORARY FILE
5B CREATIVE FILE
5C OPEN/CLOSE FILE ACCESS ABILITY
5E GET INFORMATION OF DEVICE

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...