下沙论坛

 找回密码
 注册论坛(EC通行证)

QQ登录

QQ登录

下沙大学生网QQ群8(千人群)
群号:6490324 ,验证:下沙大学生网。
用手机发布本地信息严禁群发,各种宣传贴请发表在下沙信息版块有问必答,欢迎提问 提升会员等级,助你宣传
新会员必读 大学生的论坛下沙新生必读下沙币获得方法及使用
查看: 11093|回复: 26
打印 上一主题 下一主题

用VB学做“黑客”程序

[复制链接]
  • TA的每日心情
    奋斗
    3 小时前
  • 签到天数: 2398 天

    [LV.Master]伴坛终老

    跳转到指定楼层
    1
    发表于 2003-3-31 17:14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    标题 用VB学做“黑客”程序 z( {7 P4 d' D5 y' Z; L4 N $ ^: O- }. w) [9 C! H1 n& ]+ H关键字 VB,黑客 9 ~6 L) r9 F- k( r. B 0 ~4 R! L% ?1 O% ` 6 Z7 [0 e, n V( a3 J4 o/ x2 g4 j / x3 I4 W7 Y2 t" b) m* O0 ?/ r9 g用VB学做“黑客”程序 ) _; W. r2 e' F0 s- b8 Q1 ?- e2 O ?$ V- z0 l+ o. L 1 J( l' ^; P7 S& } & l( `8 J$ i; R; |. `& w  只要掌握了原理,你也能写出一个所谓的“黑客”程序。下面笔者带领大家用VB亲自编写一个远程控制程序。从而揭开它的神秘面纱。 9 a/ s% T6 r, x5 _) B- B6 u7 A' f; _1 \7 t2 N4 P8 X% `; V+ e   一、所用控件, a" A& S! b; K! ?+ ^ + y5 Z \2 f8 ~, F3 h$ \  在程序中将使用Winsock控件。Winsock控件是一个ActiveX控件,使用TCP协议或UDP协! ?; N* |; a. o1 B" U" F! o/ }8 L 议连接到远程计算机上并与之交换数据。和定时器控件一样,Winsock控件在运行时是不可见的。Winsock的工作原理是:客户端向服务器端发出连接请求,服务器端则不停地监听客户端的请求,当两者的协议沟通时,客户端和服务器端之间就建立了连接,这时客户端和服务器端就可以实现双向数据传输。实际编程中,必须分别建立一个服务器端应用程序和一个客户端应用程序,两个应用程序中分别有自己的Winsock控件。首先设置Winsock控件使用的协议,这里我们使用TCP协议。现在,让我们开始用VB建立两个程序,一个是客户端程序myclient,另一个是服务器端程序myserver。 - J& H4 F* W" c, }! l5 Y d2 c' ?/ n7 j; s- W; B# }+ X9 k   二、编写客户端程序& x0 L6 C ?3 V" w h : r+ W! b) O' d; Z   首先来建客户端程序myclient。在myclient程序中建立一个窗体,加载Winsock控件,称为tcpclient,表示使用的是TCP协议,再加入两个文本框(text1和text2),用来输入服务器的IP地址和端口号,然后建立一个按钮(cd1),用来建立连接,按下之后就可以对连接进行初始化了,代码如下: 5 ^4 _0 z: \( [ j- ~; x2 U8 X# y; R. J- d ~7 T; ~/ _4 `3 x2 n% C   private sub cd1_click()- t4 s/ U% y5 V+ z+ z. c% r2 } 1 `3 T; Z; Y3 U1 s& e   tcpclient.romotehost=text1.text+ m3 [1 c# P% l0 M& N; b/ ` 3 j. D" q/ ?% ]+ S3 M: e   tcpclient.romoteport=val(text2.text)'端口号,缺省为1001) K; u: j1 l# C0 E) I7 {/ m+ Z4 Y& X # d' C' \6 I" y   tcpclient.connect '调用connect方法,与指定IP地址的计算机进行连接% f" b4 p, Q( ?6 W ) X/ @4 G3 J( ]2 [+ f8 u2 R  cd1.enabled=false: e6 c& ^5 q2 u$ q2 t ; Q! B2 R$ f, W: q @; t  end sub - `* x y" C4 ]/ {/ A3 i9 U# X$ R% w6 W7 B9 ~' B   连接之后就是如何处理所收到的数据的问题了。客户端和服务器端建立连接后,如果有任何一端接收到新的数据,就会触发该端winsock控件的dataarrival事件,在响应这个事件时,可以使用getdata方法获得发送来的数据。比如可以在tcpclient的dataarrival事件中编写代码如下: ! S. e I% D) ], a) k! Y8 ]8 w) I. L9 y+ R   private sub tcpclient_dataarrival(byval bytestotal as long) & ~! A& @, ^" Q" L* o" n6 }, o 2 R) j9 b: `. K0 A  dim x as string- b2 u6 g( p" \ 6 X' L$ u7 T4 m   tcpclient.getdata x '使用getdata获得发送来的数据 - J* L8 T6 _& I& {2 ~! L0 ~. h4 O' b   ......./ ]# X+ m7 m) \' W! v K . F1 U6 r, `& S3 |8 a2 J   End sub4 G) T9 k' z* Q8 v" h k / O% x: C) d5 A' {+ C   后面的省略部分表示对接收到的数据进行的具体处理,读者可以根据实际情况编写。 ; k6 W) y. [5 G2 ^: D. X8 E0 s2 m. `( D' b; ~. T   三、编写服务器端程序1 b0 g7 ]6 S: a: X4 ~% n0 c $ O) N2 X S! W" _! T   先建立一个窗体,加载Winsock控件,名称为tcpserver。另外在窗体上加入一个文本框text1用来显示客户机的IP地址和客户机发送过来的数据信息。3 {: o' j4 O9 b5 [! m5 |9 Z+ Q# k5 V% A ' R a* _1 w& K   当客户端程序运行时,在客户端程序按下连接按钮后,客户端向服务器端程序请求连接,这时服务器端的connectionrequest事件被触发,所以服务器端程序要解决连接问题,可以使用connectionrequest事件完成此功能。代码如下:- G" P3 K; N$ l( D ; {) _" M7 B+ s( G- E4 w   '在窗体的load事件中对tcpserver控件进行初始化 ; B% N, o% Z& x+ t/ p4 ]$ B8 n5 [) k   private sub form_load() 8 I. k+ D/ ^% U3 o $ z6 b% _0 J" e  tcpserver.localport=1001 . R& N% _+ e/ ]1 a# v7 n* V* K$ t! X7 [& J% z7 o+ I7 g5 y   tcpserver.listen '把服务器置于监听检测状态& z+ `" Z4 @* Q 9 \* t. g. O4 v) f   end sub . L1 r; R& i) h9 n! ?' R ! A$ @. X" s5 M! `" @6 P+ ^  '服务器端接收到客户端的连接请求,首先检查当前状态是否处于连接关闭状态4 [% P4 u" ?: h7 O, C 8 i/ J3 A9 Q8 _" } y   Private sub tcpclient_connectionrequest(Byval requestID as long) " m. z) N3 U9 o+ V $ S1 \7 w9 u- a& ~0 z D% D  If tcpserver.state<>sckclosed then '检查控件的state属性是否为关闭 - C8 ?: {9 B3 q2 n : n( D& Z0 e/ h  Tcpserver.close '; v7 U9 l0 r+ r* D6 [/ C D 5 P+ _( m5 D0 D   Tcpserver.accept requestID '3 q" H+ s$ l* X% Q$ U1 `& @1 { 8 B$ p2 o0 M5 o, g/ r/ r& ^. a  End if& t3 w4 r8 K5 [2 g2 O9 _ , C. K. x$ B3 q; M3 t   End sub 7 J6 }6 w8 ~+ }9 q3 ^" L) F/ A+ W3 n* b8 {   现在我们在服务器端程序tcpserver的dataarrival事件中添加以下代码,以便让服务器端程序可以接收客户机端的指令,并运行相应的程序。% \" x% ]) o. g% W. s. Y3 V ! O. }# N7 c# F4 X  四、测试远程控制程序8 S/ A4 I. @. K3 N. L2 F$ ~; g) R , x3 h ^2 n; k1 B3 [# z9 n, Q  现在,你就可以将这两个程序分别运行于两台使用TCP/IP协议联网的机器了。在客户机端你按下连接按钮,再输入“c: mmand.com”,可以看到在服务器端立刻打开一个DOS窗口,设想一下,如果它运行一些破坏性的命令会发生什么事情?这就是一个最基本的远程控制程序。当然,真正的黑客程序要复杂得多,但基本原理是相同的。现在你该恍然大悟了吧? * {6 Q9 b, e# ^# m! h
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 分享分享 顶 踩
    丧心病狂 该用户已被删除
    2
    发表于 2003-3-31 17:23:00 | 只看该作者
    值得一顶,
    % a& b4 E5 U# x4 Z不过这个程序很脆弱的,真正的黑客程序要隐藏起来,那要用到很多的API,尤其是在2000和XP下边,是比较难做到的。在98里就比较方便了。上次我就在学校机房里偷过别人的帐号和密码的。女生的密码以数字为主,好像我偷到的没几个是用到字母的。
    : A: D3 q9 K3 y; O& b6 a7 I8 ]" L0 G* R4 q# n% `& J1 q

    * a4 R1 ]0 p( m# [- \5 i8 N
    [此贴子已经被作者于2003-4-3 11:45:18编辑过]

    8 Y+ Z9 G! _0 [
  • TA的每日心情
    奋斗
    3 小时前
  • 签到天数: 2398 天

    [LV.Master]伴坛终老

    3
     楼主| 发表于 2003-3-31 17:35:00 | 只看该作者
    从初步开始呀,我从采访超过来的
    狂风 该用户已被删除
    4
    发表于 2003-3-31 17:59:00 | 只看该作者
    多交流交流啊/ U; I% z) ]3 }- {9 T9 |% P
    丰子 该用户已被删除
    5
    发表于 2003-4-1 19:51:00 | 只看该作者
    是啊
    & S2 O6 e! A8 f  `& q8 ~/ K机房的帐号很好盗的. R: U; U  H; _  G. g2 h& Y- J( R
    保密措施太懒了
    / t1 p3 O8 l9 j7 s" Q4 o0 E: K不过出于个人品德) c2 V6 \* F/ a6 ?8 \: u; L
    大家还是不要盗了
    # u3 {/ D$ {0 W9 [会让其他同学不安的
    fish 该用户已被删除
    6
    发表于 2003-4-2 20:51:00 | 只看该作者
    以下是引用丧心病狂在2003-4-3 11:44:54的发言:
    + N1 [  E# t: l8 l" v. }  g值得一顶,
    2 Q, x+ N& [9 Q) r 不过这个程序很脆弱的,真正的黑客程序要隐藏起来,那要用到很多的API,尤其是在2000和XP下边,是比较难做到的。在98里就比较方便了。上次我就在学校机房里偷过别人的帐号和密码的。女生的密码以数字为主,好像我偷到的没几个是用到字母的。
    9 t# u3 y" ^7 j7 Q. C0 Z
    ( P5 w. e- N+ ?3 e - g- a. d* G, \4 i3 q) ]
    [此贴子已经被作者于2003-4-3 11:45:18编辑过]
    , }5 o( f! D( {# D% @: H
    很无聊的啊~~居然做小偷,偶偷过一次工程女生的照片,被骂死了~~
    baby 该用户已被删除
    7
    发表于 2003-4-2 22:15:00 | 只看该作者
    hoho,厉害啊,好好学学!
    fish 该用户已被删除
    8
    发表于 2003-4-2 23:18:00 | 只看该作者
    是啊~~~成为真正黑客路还长啊~~要能自己编写操作系统,自己刻主板~哈哈~~偶太菜了的说
    丧心病狂 该用户已被删除
    9
    发表于 2003-4-5 18:38:00 | 只看该作者
    不过在NT内核下边,用正当手段根本无法隐藏进程,除非用API函数CreateRemoteThread在别的进程内部建立一个DLL线程,这样的话一般的人是无法发现这个东西了。

    该用户从未签到

    10
    发表于 2003-4-8 00:16:00 | 只看该作者
    vb的不懂

    该用户从未签到

    11
    发表于 2003-4-18 02:32:00 | 只看该作者
    VB做这个不太合适,主要是体积庞大,还一定要带个MSVBVBM60.DLL
    9 z% N% |* R- p' G$ `) K- v; O不过优点就是比较简单
    ' n  g& X  H. l7 `3 @0 N% {, l

    该用户从未签到

    12
    发表于 2003-4-18 13:56:00 | 只看该作者
    以下是引用丧心病狂在2003-4-3 11:44:54的发言:8 ]) |+ L1 G: p
    值得一顶,3 k2 Y# b4 w0 {# R: Y$ H- s* }
    不过这个程序很脆弱的,真正的黑客程序要隐藏起来,那要用到很多的API,尤其是在2000和XP下边,是比较难做到的。在98里就比较方便了。上次我就在学校机房里偷过别人的帐号和密码的。女生的密码以数字为主,好像我偷到的没几个是用到字母的。3 E  K' P4 o. w+ h; c" R' C0 T2 a

    7 k0 W- z8 @- |4 G0 o: S; d
    & z/ E: y$ q/ U
    [此贴子已经被作者于2003-4-3 11:45:18编辑过]
    # k5 \- ^- t4 x1 C$ F
    % u( ?  `; G2 [# s% S- R9 F& i
    哈哈
      ?% v$ c8 d. S; p! c9 |我是全字母的啊$ Y( Q4 }& z3 L! d  `! `$ D" z
    最让你失望的是里面没钱呢
    饭团 该用户已被删除
    13
    发表于 2003-4-19 00:52:00 | 只看该作者
    VB忘的差不多了……

    该用户从未签到

    14
    发表于 2003-4-22 02:06:00 | 只看该作者
    回9楼:! a, E0 V! w' v; t" I! ?7 [) g) Z
    即使用CreateRemoteThread函数,你也还要用一个进程来启动安装DLL(上帝的第一次推动问题),如何隐藏运行启动的进程?把它放到注册表里?太明显了吧
    丧心病狂 该用户已被删除
    15
    发表于 2003-5-11 15:29:00 | 只看该作者
    回14楼:
    4 Z% {$ n/ F8 H3 V* [: f. I' E' W这个最简单也是最复杂了。最好的做法是把启动一个进程的代码加入到一个系统必须的可执行文件,如修改一个重要文件如explorer,再如XP的winlogon.exe(这个文件是用来验证XP是否激活的,所以一般的盗版XP这个文件都是损坏的,加个东西进去,骗他们说是用来激活的,他们还会谢天谢地了),有一种木马感染用于拨号的rasapi32.dll,只要你上网,它就会激活。真是太爽了。

    该用户从未签到

    16
    发表于 2003-5-11 15:53:00 | 只看该作者
    我要好好学习!
    丧心病狂 该用户已被删除
    17
    发表于 2003-5-12 18:10:00 | 只看该作者
    不要小看VB,VB的功能很强的,尤其是快速地开发一个小型的程序应用。, G  y2 s4 _$ W( g# d3 y9 }: c& d
    并且VB很容易上手的。问题是很多人是把它当成一门课来学,而不是一门计算机语言。; W3 ?3 \9 _# i4 b* k
    上课你可以投机取巧,但编程可就由不得你了。

    该用户从未签到

    18
    发表于 2003-5-17 23:01:00 | 只看该作者
    懂得VB这些也不再神秘!
    擦肩而过 该用户已被删除
    19
    发表于 2003-5-18 18:06:00 | 只看该作者
    过了2级没看过VB!!二级时VB也没学好
    头像被屏蔽
  • TA的每日心情
    奋斗
    2018-4-25 09:36
  • 签到天数: 1 天

    [LV.1]初来乍到

    20
    发表于 2003-5-19 21:43:00 | 只看该作者
    这么简单?!

    本版积分规则

    关闭

    下沙大学生网推荐上一条 /1 下一条

    快速回复 返回顶部 返回列表