煎饼 发表于 2003-3-31 17:14:00

用VB学做“黑客”程序

标题   用VB学做“黑客”程序   

关键字   VB,黑客



用VB学做“黑客”程序



  只要掌握了原理,你也能写出一个所谓的“黑客”程序。下面笔者带领大家用VB亲自编写一个远程控制程序。从而揭开它的神秘面纱。

  一、所用控件

  在程序中将使用Winsock控件。Winsock控件是一个ActiveX控件,使用TCP协议或UDP协
议连接到远程计算机上并与之交换数据。和定时器控件一样,Winsock控件在运行时是不可见的。Winsock的工作原理是:客户端向服务器端发出连接请求,服务器端则不停地监听客户端的请求,当两者的协议沟通时,客户端和服务器端之间就建立了连接,这时客户端和服务器端就可以实现双向数据传输。实际编程中,必须分别建立一个服务器端应用程序和一个客户端应用程序,两个应用程序中分别有自己的Winsock控件。首先设置Winsock控件使用的协议,这里我们使用TCP协议。现在,让我们开始用VB建立两个程序,一个是客户端程序myclient,另一个是服务器端程序myserver。

  二、编写客户端程序

  首先来建客户端程序myclient。在myclient程序中建立一个窗体,加载Winsock控件,称为tcpclient,表示使用的是TCP协议,再加入两个文本框(text1和text2),用来输入服务器的IP地址和端口号,然后建立一个按钮(cd1),用来建立连接,按下之后就可以对连接进行初始化了,代码如下:

  private sub cd1_click()

  tcpclient.romotehost=text1.text

  tcpclient.romoteport=val(text2.text)'端口号,缺省为1001

  tcpclient.connect '调用connect方法,与指定IP地址的计算机进行连接

  cd1.enabled=false

  end sub

  连接之后就是如何处理所收到的数据的问题了。客户端和服务器端建立连接后,如果有任何一端接收到新的数据,就会触发该端winsock控件的dataarrival事件,在响应这个事件时,可以使用getdata方法获得发送来的数据。比如可以在tcpclient的dataarrival事件中编写代码如下:

  private sub tcpclient_dataarrival(byval bytestotal as long)

  dim x as string

  tcpclient.getdata x '使用getdata获得发送来的数据

  .......

  End sub

  后面的省略部分表示对接收到的数据进行的具体处理,读者可以根据实际情况编写。

  三、编写服务器端程序

  先建立一个窗体,加载Winsock控件,名称为tcpserver。另外在窗体上加入一个文本框text1用来显示客户机的IP地址和客户机发送过来的数据信息。

  当客户端程序运行时,在客户端程序按下连接按钮后,客户端向服务器端程序请求连接,这时服务器端的connectionrequest事件被触发,所以服务器端程序要解决连接问题,可以使用connectionrequest事件完成此功能。代码如下:

  '在窗体的load事件中对tcpserver控件进行初始化

  private sub form_load()

  tcpserver.localport=1001

  tcpserver.listen '把服务器置于监听检测状态

  end sub

  '服务器端接收到客户端的连接请求,首先检查当前状态是否处于连接关闭状态

  Private sub tcpclient_connectionrequest(Byval requestID as long)

  If tcpserver.state<>sckclosed then '检查控件的state属性是否为关闭

  Tcpserver.close '

  Tcpserver.accept requestID '

  End if

  End sub

  现在我们在服务器端程序tcpserver的dataarrival事件中添加以下代码,以便让服务器端程序可以接收客户机端的指令,并运行相应的程序。

  四、测试远程控制程序

  现在,你就可以将这两个程序分别运行于两台使用TCP/IP协议联网的机器了。在客户机端你按下连接按钮,再输入“c: mmand.com”,可以看到在服务器端立刻打开一个DOS窗口,设想一下,如果它运行一些破坏性的命令会发生什么事情?这就是一个最基本的远程控制程序。当然,真正的黑客程序要复杂得多,但基本原理是相同的。现在你该恍然大悟了吧?

丧心病狂 发表于 2003-3-31 17:23:00

值得一顶,
不过这个程序很脆弱的,真正的黑客程序要隐藏起来,那要用到很多的API,尤其是在2000和XP下边,是比较难做到的。在98里就比较方便了。上次我就在学校机房里偷过别人的帐号和密码的。女生的密码以数字为主,好像我偷到的没几个是用到字母的。


[此贴子已经被作者于2003-4-3 11:45:18编辑过]

煎饼 发表于 2003-3-31 17:35:00

从初步开始呀,我从采访超过来的

狂风 发表于 2003-3-31 17:59:00

多交流交流啊

丰子 发表于 2003-4-1 19:51:00

是啊
机房的帐号很好盗的
保密措施太懒了
不过出于个人品德
大家还是不要盗了
会让其他同学不安的

fish 发表于 2003-4-2 20:51:00

以下是引用丧心病狂在2003-4-3 11:44:54的发言:
值得一顶,
不过这个程序很脆弱的,真正的黑客程序要隐藏起来,那要用到很多的API,尤其是在2000和XP下边,是比较难做到的。在98里就比较方便了。上次我就在学校机房里偷过别人的帐号和密码的。女生的密码以数字为主,好像我偷到的没几个是用到字母的。


[此贴子已经被作者于2003-4-3 11:45:18编辑过]

很无聊的啊~~居然做小偷,偶偷过一次工程女生的照片,被骂死了~~

baby 发表于 2003-4-2 22:15:00

hoho,厉害啊,好好学学!

fish 发表于 2003-4-2 23:18:00

是啊~~~成为真正黑客路还长啊~~要能自己编写操作系统,自己刻主板~哈哈~~偶太菜了的说

丧心病狂 发表于 2003-4-5 18:38:00

不过在NT内核下边,用正当手段根本无法隐藏进程,除非用API函数CreateRemoteThread在别的进程内部建立一个DLL线程,这样的话一般的人是无法发现这个东西了。

zero 发表于 2003-4-8 00:16:00

vb的不懂

游侠无极限 发表于 2003-4-18 02:32:00

VB做这个不太合适,主要是体积庞大,还一定要带个MSVBVBM60.DLL
不过优点就是比较简单

魔术师 发表于 2003-4-18 13:56:00

以下是引用丧心病狂在2003-4-3 11:44:54的发言:
值得一顶,
不过这个程序很脆弱的,真正的黑客程序要隐藏起来,那要用到很多的API,尤其是在2000和XP下边,是比较难做到的。在98里就比较方便了。上次我就在学校机房里偷过别人的帐号和密码的。女生的密码以数字为主,好像我偷到的没几个是用到字母的。


[此贴子已经被作者于2003-4-3 11:45:18编辑过]


哈哈
我是全字母的啊
最让你失望的是里面没钱呢

饭团 发表于 2003-4-19 00:52:00

VB忘的差不多了……http://foolfish.chinaemu.net/iconpic/eq/eq02.gif

hzzh 发表于 2003-4-22 02:06:00

回9楼:
即使用CreateRemoteThread函数,你也还要用一个进程来启动安装DLL(上帝的第一次推动问题),如何隐藏运行启动的进程?把它放到注册表里?太明显了吧

丧心病狂 发表于 2003-5-11 15:29:00

回14楼:
这个最简单也是最复杂了。最好的做法是把启动一个进程的代码加入到一个系统必须的可执行文件,如修改一个重要文件如explorer,再如XP的winlogon.exe(这个文件是用来验证XP是否激活的,所以一般的盗版XP这个文件都是损坏的,加个东西进去,骗他们说是用来激活的,他们还会谢天谢地了),有一种木马感染用于拨号的rasapi32.dll,只要你上网,它就会激活。真是太爽了。

starfire 发表于 2003-5-11 15:53:00

我要好好学习!

丧心病狂 发表于 2003-5-12 18:10:00

不要小看VB,VB的功能很强的,尤其是快速地开发一个小型的程序应用。
并且VB很容易上手的。问题是很多人是把它当成一门课来学,而不是一门计算机语言。
上课你可以投机取巧,但编程可就由不得你了。

雪狼2008 发表于 2003-5-17 23:01:00

懂得VB这些也不再神秘!

擦肩而过 发表于 2003-5-18 18:06:00

过了2级没看过VB!!二级时VB也没学好

hater315 发表于 2003-5-19 21:43:00

这么简单?!
页: [1] 2
查看完整版本: 用VB学做“黑客”程序