危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览18791589

是否免杀就得由我自己主宰

一款木马,如何才能防止被杀毒软件查杀呢?答案就是——免杀!自从木马诞生的那一天起,被杀与免杀的较量就从来没有停止过,正所谓是"道高一尺、魔高一丈",在杀毒软件技术更新的同时,木马的免杀技术也在不断的前进着。

关于术马免杀的方法是五花八门:修改特征码、加壳、加花、数字签名等等。一般来说,我们使用比较多的还是加壳,这种方法简单方便,免杀效果也不错,不过今天,我们要使用"花指令"来给木马制作一次免杀。

花指令,就是一句或几句简单的汇编代码,这些垃圾代码可有可无,添加或减少都不会影响程序的正常运行。花指令到底是个什么概念呢?来打个比方,比如我们的木马名叫"hacker",杀毒软件一发现"hacker"这个关键名称后就会清除它。但在添加了花指令后,我们的木马名称就变成了"rekcah"或者"hckear"等,使用不同的花指令得到的效果都是不一样的,而杀毒件在扫描后,发现名称不是"hacker",自然也就不会清除它了,这就是所谓的"花指令"。

加花(也就是添加花指令)对于有经验的黑客来说并不是什么难事,但对于免杀新手们来说,看到花指令后的第一感觉就是:"哎呀!这可怎么办啊!"因为花指令涉及到的都是一些最枯燥的汇编代码,对于技术还不是太成熟的免杀新手来说还是比较困难的。不过,新手也有新手的办法,因为网上有很多高手编写出了花指令添加器,不过使用这些工具添加的花指令大多数仍会被杀毒软件查杀的,那我们还能使用花指令来进行免杀吗?答案当然是肯定的!

既然别人提供的花指令可能没什么用了,那我们难道就不能打造属于自己的花指令吗?当然是可以的,我们先使用加花工具为木马添加花指令,我要给大家介绍的加花软件就是"花蝴蝶"和"怒剑狂花",选择想要加花的文件,"区段名"处可以自由填写,由于大多数人对于花指令还不是太了解,因此我推荐大家还是使用默认的设置。

添加完花指令后,我们要做的就是对添加的花指令进行一些改编,这就需要用到OllyDBG对文件进行修改了,OllyDBG是一款32位的汇编分析编辑器,它能在没有软件源代码的情况下很容易的对文件进行分析和编辑,加载加花后的文件,我们可以看到很多的汇编代码,接下来我们的操作就会涉及到一些汇编知识了,对于不了解的朋友可以到网上搜索一下常用的汇编指令。

说白了,花指令的目的就是让反汇编出错,几乎都是跳转指令,使用Tjmp、call、ret等堆栈技术和位置运算,比如jz label、jnz label、db thunkcode等等。

我们的改编分为以下三种类型:锦上添花(添加代码)、偷天换日(替换代码)以及移花接木(移动代码)。

锦上添花:有时候,我们会发现程序中有很多"nop"语句,这些语句在汇编中并没有实际意义,我们可以对其加以改造,比如选取两处"nop"语句,把它们换成"pusheax"和"pop eax"等。

偷天换日:也就是使用相同作用的代码代替原来的指令代码,比如jn-mp. jne-jmp、jmp eax-retn。

移花接术:把一处或多处的指令进行移动,移动时要注意这些指令是否有并列关系,否则的话有可能会导致程序无法运行。比如可以把push eax、pop eax移动成pop eax、push eax等等。

但无论怎么改编,我们都要遵循堆栈出栈平衡的原则,当然对于有些特殊的代码,也是可以不遵循的。在改编完成后,保存修改并运行程序测试一下,如果程序能够正常运行,那么恭喜你了,如果不能的话,就说明加花对该文件无效,或者是添加花指令时出现错误了。

有加花的办法自然也就有去除花指令的办法,还是那句老话:"解铃还需系铃人"。我们同样需要用到OllyDBG这款软件,它自带了一个功能,就是去除花指令。打开OllyDBG,在菜单上选择"Plugins",在第5个选项上可以看到"花指令去除器",打开后我们就可以使用这个去除器来去除一些常见的花指令了,如果跳转太多或是花指令过于复杂的话,那么这个去除器也无能为力了。

加花和加壳一样,随着时间的推移,终究会失效的,因此免杀可以没有顺序,但绝不能单一,最后我还有几点需要强调一下:

1、备份文件,因为有些文件在加花后可能会出错、无法运行,所以提前备份一下就很重要了。

2、加花要适时,要根据当前的文件来进行,不能什么文件都加花,因为有些文件在加花后反而会无效。

3、改写汇编代码时要注意不能出错,而且在替换时,被替换的代码要和替换的代码的含义必须一致。

4、免杀要采用多种方法,每种免杀都有自己的缺陷,因此结合多种免杀方法效果才会更好。

5、免杀不是万能的,因此也不要对免杀太过于迷信。

相关推荐