vb实现木马式隐形运行

vb实现木马式隐形运行

在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如dcs(集散控制系统)中的后台监控系统、木马控制程序、源码防拷贝等,以减少被发现、截杀和反汇编的风险。这种功能模块要求程序在运行期间不仅不会在桌面出现,也不允许**作者从任务管理器列表中发现。

程序隐形的原理

对于一个隐形程序而言,最基本的要求是:

1.不在桌面出现界面;

2.不在任务栏出现图标;

3.程序名从任务管理器名单中消失。

对于上述第一点,可以将form的visible属性设为false。

要将图标从任务栏中屏蔽掉,可以把form的showintaskbar改为false。

在windows环境下,可以调用winapi函数中的registerviceprocess来实现第三个要求。

上述功能,不论用vc、delphi、vb,还是pb等任何一种高级编程语言都是比较容易实现的。

隐形功能多用于木马程序,但木马程序在许多国家和地区是不合法的,为便于理解,本文用vb结合一个程序防拷贝的实例来讲解。通过获取软件安装路径所在磁盘序列号(磁盘id),用做对合法用户的判断。以下程序的目的是用于讲解隐形程序的编制和应用,对程序防拷贝内容作了一定程度的简化。

程序隐形的示例

程序的具体编制操作如下:

1.在vb6.0编程环境中,新建一个工程project1。

2.在project1中添加模块modulel,在工程属性中将工程名称改为hiddenmen,应用程序标题也改为hiddenmen(以下程序都经过实际运行测试,可以原样复制使用)。

在模块module1中加入如下声明:

publicdeclarefunctiongetcurrentprocessidlib“kernel32”long

'获得当前进程id函数的声明

publicdeclarefunctionregisterserviceprocesslib“kernel32”(byvalprocessidlong,byvalserviceflagslong)long

'在系统中注册当前进程id函数的声明

3.在project1中新建一个窗体form1,设置form1的属性:

bxwx.org=falsbxwx.org=false

在代码窗口添加如下代码:

privatedeclarefunctiongetdrivetypelib“kernel32”alias“getdrivetypea”(byvalndrivestring)long

'获得当前驱动器类型函数的声明

privatedeclarefunctiongetvolumeinformationlib“kernel32”alias“getvolumeinformationa”(byvallprootpathnamestring,byvallpvolumenamebufferstring,byvalnvolumenamesizelong,lpvolumeserialnumberlong,lpmaximumorgponentlengthlong,lpfilesystemflagslong,byvallpfilesystemnamebufferstring,byvalnfilesystemnamesizelong)long

'获得当前驱动器信息函数的声明

privatesubform_load

dimdrive_nolong,drive_flaglong

dimdrive_chrstring,drive_diskstring

dimserial_nolong,kkklong

dimstemp3string,dflagboolean

dimstrlabelstring,strtypestring,strclong

registerserviceprocessgetcurrentprocessid,1'从系统中取消当前进程

strlabel=string(255,chr(0))

strtype=string(255,chr(0))

stemp3=“172498135”'这是作者c盘的序列号(十进制),读者可根据自己情况更改。

dflag=false

fordrive_no=025

drive_disk=chr(drive_no+67)

drive_chr=drive_disk&“:\”

drive_flag=getdrivetype(drive_chr)

drive_flag=3then

kkk=getvolumeinformation(drive_chr,strlabel,len(strlabel),serial_no,0,0,strtype,len(strtype))'通过getvolumeinformation获得磁盘序列号

selectcasedrive_no

case0

strc=serial_no

endselect

serial_no=stemp3then

dflag=true

exitfor

end

end

nextdrive_no

drive_no=anddflag=falsethen'非法用户

gotoerr:

end

msgbox(“hi,合法用户!”)

exitsub

err:

msgbox(“错误!你的c:盘id号是”&strc)

endsub

privatesubform_unload(cancelinteger)

registerserviceprocessgetcurrentprocessid,0'从系统中取消当前程序的进程

endsub

将上述程序代码编译后运行,在出现类似“错误!你的c盘id号是172498135”对话框时,按下ctrl+alt+del键,看看程序名叫“hiddenmen”是否在任务管理器名单列表里。如果把上述程序稍加改动,可以加到自己特定的程序中去。该程序在隐形运行之中,不知不觉就完成了预定功能。

以上程序在简体中文windows98和vb6.0环境中调试通过。

上一章书籍页下一章

super红客

···
加入書架
上一章
首頁 都市青春 super红客
上一章下一章

vb实现木马式隐形运行

%