查看: 7125|回复: 13
收起左侧

[求助] 关于大蜘蛛不杀二进制病毒的疑惑

[复制链接]
deadcarl
头像被屏蔽
发表于 2009-4-10 15:19:07 | 显示全部楼层 |阅读模式
众所周知,大蜘蛛不杀二进制病毒,可是二进制病毒是什么东西,在百度里Google一下,里面五花八门的解释越看我越糊涂,所以想在这里问一下,
(1)二进制病毒是什么,纯机器码写的病毒,汇编语言写的病毒,编译型的高级语言写的病毒,还是翻译型的高级语言写的病毒?或者指不经过OS直接控制硬件的病毒?
(2)XP下二进制病毒有没有危害?为什么?
jpzy
发表于 2009-4-10 15:54:19 | 显示全部楼层
这应该是一个谬误了吧!
对于病毒,只要入了库,都是会杀的。
蜘蛛不杀某些病毒,只能说他没有入库!
我记得某篇流传甚广的谬误文章是这样表述的:对于没有危害的二进制病毒(代码),蜘蛛是不会杀的!……
既然没有危害,怎么能算是病毒呢?
qianxideyu
发表于 2009-4-10 16:11:25 | 显示全部楼层
希望早日收入病毒库~
idontknow
发表于 2009-4-10 16:14:26 | 显示全部楼层
每个厂商对病毒的处理方式都各有不同
没什么好说的
朱宏亮
发表于 2009-4-10 17:02:26 | 显示全部楼层
学习了,没实际破坏能力那能叫病毒吗
mofunzone
发表于 2009-4-10 17:11:15 | 显示全部楼层
最简单的就是Ascii,地球人都知道,NASA官方指定产品
这涉及到低级语言方面的内容了,现在大家用的都是高级语言,如果你是学计算机,而且想从事类似手机开发之类的,你就会接触到这方面的东西,cpu实际就是一个执行二进制语言的东西,简单的解释一下,每一段内存命令都是8位16进制数字组成,前两位代表op code,后面是mem address,而cpu就是通过这些指令执行的,当然还涉及到其他很多类似cpu的ALU ACC DataBus等等方面的东西
蛋疼的话你可以看看下面的高级语言对应低级语言的东西。。
memory mem.main_mem
0/ 20000100     # ACC <- M[100]
1/ 14000102     # ACC <- ACC mod 2
2/ 41000008     # BZ 8
3/ 20000100     # ACC <- M[100]
4/ 12000103     # ACC <- ACC * 3
5/ 10000101     # ACC <- ACC + 1
6/ 21000100     # ACC -> M[100]
7/ 40000001     # B 1
8/ 20000100     # ACC <- M[100]
9/ 13000102     # ACC <- ACC / 2
a/ 21000100     # ACC -> M[100]
b/ 11000101     # ACC <- ACC - 1
c/ 4100000e     # BZ e
d/ 40000000     # B 0
e/ bbbbbbbb        # undefined
100/ 5
101/ 1
102/ 2
103/ 3

memory control.microcode
# bits                function                                hex mask
#  0,1,2,3        ALU function                                000f
#  4                ALU register enable                        0010
#  5                ALU output enable                        0020
#  6                Memory address register enable                0040
#  7                Memory write enable                        0080
#  8                Memory output enable                        0100
#  9,10                unused                                        0600
# 11                PC output enable                        0800
# 12                branch always                                1000
# 13                branch zero                                2000
# 14                immediate output enable                        4000
# 15                next instruction                        8000
# where
# ALU functions
#  0: add,        1: sub,            2: mlt,        3: div,
#  4: rem,        5: bus,            6: 0,        7: 0
# PC operations
#  0: PC <- 0,            1: PC <- PC + 1,        2: PC <- bus,        3: PC unchanged

# reset
0/ 3000 # set PC to zero
1/ 0840 # memory address register <- 0
2/ 8100 # instruction register <- M[0]; PC <- 1; uPC <- 0

#ALU instructions
# op code 10: ACC <- ACC + M[imm]
1000/ 4040 # memory address register <- imm
1001/ 0110 # ACC <- ACC + M[imm]
1002/ 0840 # memory address register <- PC
1003/ 8100 # fetch next instruction and increment PC

# op code 11: ACC <- ACC - M[imm]
1100/ 4040 0111 0840 8100

# op code 12: ACC <- ACC * M[imm]
1200/ 4040 0112 0840 8100

# op code 13: ACC <- ACC / M[imm]
1300/ 4040 0113 0840 8100

# op code 14: ACC <- ACC % M[imm]
1400/ 4040 0114 0840 8100

# op code 15: ACC <- M[imm] (same as op code 20, commented there)
1500/ 4040 0115 0840 8100

# op code 16: ACC <- 0
1600/ 4040 0116 0840 8100

# op code 17: ACC <- 0 (same as op code 16)       
1700/ 4040 0116 0840 8100

# op code 20: ACC <- M[imm]
2000/ 4040        # memory address register <- imm
2001/ 0115        # ACC <- M[imm]
2002/ 0840        # memory address register <- PC
2003/ 8100        # fetch next instruction and increment PC

# op code 21: M[imm] <- ACC
# to be cautious, I leave the memory data on the bus during the
# cycle that memory write enable is de-asserted.
2100/ 4040        # memory address register <- imm
2101/ 00a0        # M[imm] <- ACC
2102/ 0020        # ALU out enabled
2103/ 0840        # memory address register <- PC
2104/ 8100        # fetch next instruction and increment PC

# op code 40: PC <- imm
4000/ 5000 0840 8100

# op code 41: PC <- if ACC==0 then imm else PC+1
4100/ 6000        # PC <- imm if ACC==0
4101/ 0840 8100        # fetch next instruction and increment PC

# op code BC: a mystery instruction
BC00/4010
BC01/0060
BC02/0115
BC03/0840
BC04/8100
deadcarl
头像被屏蔽
 楼主| 发表于 2009-4-10 17:27:05 | 显示全部楼层
原帖由 jpzy 于 2009-4-10 15:54 发表
这应该是一个谬误了吧!
对于病毒,只要入了库,都是会杀的。
蜘蛛不杀某些病毒,只能说他没有入库!
我记得某篇流传甚广的谬误文章是这样表述的:对于没有危害的二进制病毒(代码),蜘蛛是不会杀的!……
既然 ...
+_+!,“二进制病毒”这个概念是我从大蜘蛛这个杀毒软件的官方网站的一些信息才知道的,那上说大蜘蛛杀软没有把“二进制病毒”和那些不会发作的木马放进病毒库;所以我才想了解一下啊! 见大蜘蛛官方论坛http://bbs.drweb.com.cn/thread-748-1-1.html
西门东郭
发表于 2009-4-10 17:33:34 | 显示全部楼层
大蜘蛛不怎么好用。
iezhaoie
头像被屏蔽
发表于 2009-4-10 17:50:16 | 显示全部楼层
不用大蜘蛛
deadcarl
头像被屏蔽
 楼主| 发表于 2009-4-10 18:04:07 | 显示全部楼层

回复 6楼 mofunzone 的帖子

ASCII是ANSI 制定的,关NASA啥事? “每一段内存命令都是8位16进制数字组成,前两位代表op code,后面是mem address。。。。”这句话有问题(1)并不是所有CPU都是可以读8位16进制数字组成内存命令,这起码要求是32位的CPU(2)不同CPU的指令格式不一样,所以“前两位代表op code,后面是mem address”无从谈起!
最重要,你没说明白啥是二进制病毒!!
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-16 17:05 , Processed in 0.137900 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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