3、什么叫"加壳"?
如何给木马加花指令 加壳 做免杀等
免杀,顾名思义就是说避免被杀毒软件查杀!
免杀的方法也有很多种,针对不同的情况我们运用不同的免杀方法。
⒈文件免杀:加花/修改文件特征码/加壳/修改加壳后的文件。
⒉内存免杀:修改特征码。
⒊行为免杀。
现在我来揭开免杀神秘的面纱。(这里不对免杀做深入讨论,只对原理进行分析,毕竟这不是黑客教程)
加花
加花是病毒免杀的常用手段,加花原理就是通过添加加花指令(一些垃圾指令,类似加1减1之类的无用语句)让杀毒软件检测不到特征码。加花可以分为加区加花和去头加花。(只做了解,不做解释)
特征码修改
加花以后一些杀毒软件就认不出来了,但有些比较强的杀毒软件,像卡巴斯基这类,可能还是会被杀,这时就要定位特征码修改了,要修改特征码,就要先定位杀毒软件的病毒库所定位的特征码,这个有一定难度,特别是复合特征码的定位,但复合特征码虽然增加了定位特征码的难度,但复合特征码也有它的弱点,因为定义复合特征码需要单个特征码几倍的病毒库,不方便用户的病毒库升级,所以除了特别流行的病毒,杀毒软件厂商并没有做太多的复合特征码。
定位了特征码之后就应该修改特征码了,主要方法有两种:直接修改法,跳转修改法。
直接修改法利用的是等效指令替换,或者指令顺序的改变不影响执行的效果。还有一种是如果特征码是ASCll码,可以直接修改大小写,大写替换小写,小写替换大写。
跳转修改发比较简单,主要原理是把有特征码的那段NOP掉,然后把NOP掉的那段语句写入空白的0000区,在通过JMP跳转连接起来,让杀毒软件找不到特征码,从而达到免杀的目的。
加壳
加壳的原理是给原程序加上一段保护程序,有保护和加密功能,运行加壳后的文件先运行壳再运行真实文件,从而起到保护作用。
脱壳当然就是去掉保护程序
想要加壳后能达到免杀的效果
那就要加最新的免杀壳!!!!
要采纳哈。
木马加壳起什么作用
防止被杀毒软件发现,因为现在的很多杀毒软件都是用特征匹配的方法来寻找木马和病毒,加壳的话就会把木马的一些特征隐藏掉,让杀毒软件难以发现,加壳的手法和软件发现的难易度是有联系的,如果使用动态加壳和多重加壳的话,杀毒软件就很难找出来了,但是如果是主动防御型的杀毒软件的话,有些经过加壳的木马还是能被发现的!@
什么叫"加壳"?
加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么东东。软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳后的软件运行速度的差别。当你加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当你执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序。所以,这些的工作只是在内存中运行的,是不可以了解具体是怎么样在内存中运行的。通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。因为有的时候程序会过大,需要压缩。但是大部分的程序是因为防止反跟踪,防止程序被人跟踪调试,防止算法程序不想被别人静态分析。加密代码和数据,保护你的程序数据的完整性。不被修改或者窥视你程序的内幕。
其实我用的最多加壳就是给木马加壳,也便不被杀毒软件发现,但是现在类似卡巴斯基的杀毒软件都很厉害,任你怎么加,也能发现的。。。
各位大侠upx加壳的原理是什么啊!不胜感激
upx加壳原理
upx的功能有两种描述。一种叫做给程序加壳,另一种叫压缩程序。其实这两种表述都是正确的,只是从不同的
角度 对upx的描述。
upx的工作原理其实是这样的:首先将程序压缩。所谓的压缩包括两方面,一方面在程序的开头或者其他合适的
地方 插入一段代码,另一方面是将程序的其他地方做压缩。压缩也可以叫做加密,因为压缩后的程序比较难看
懂,主要是 和原来的代码有很大的不同。最大的表现也就是他的主要作用就是程序本身变小了。变小之后的程
序在传输方面有很 大的优势。其次就是在程序执行时,实时的对程序解压缩。解压缩功能是在第一步时插入的
代码完成的功能。联起来 就是:upx可以完成代码的压缩和实时解压执行。且不会影响程序的执行效率。
upx和普通的压缩,解压不同点就算在于upx是实时解压缩的。实时解压的原理可以使用一下图形表示:
1==2==3==4==5==6
假设1是upx插入的代码,2,3,4是压缩后的代码。5,6是随便的什么东西。
程序从1开始执行。而1的功能是将2,3,4解压缩为7,8,9。7,8,9就是2,3,4在压缩之前的形式。
1==7==8==9==5==6
连起来就是:
最初代码的形式就应该是:7==8==9==5==6
用upx压缩之后形式为:1==2==3==4==5==6
执行时的形式变为:1==7==8==9==5==6
类似的技术还有很多。这样的技术较多的应用于:木马和病毒躲避杀毒软件时,发布的程序防止被反编译或
破解时。 upx是一种典型的加壳程序或者压缩程序。因此已经有非常成熟的去壳程序或者解压缩程序。
同时,很多的杀毒软件 也可以识别出加有upx壳的病毒和木马。而一些软件生产场上为了防止被破解所加的
壳也同时被轻易的破解。在这样 的情况下很多人想出了产生自己的加壳程序的想法。应此很多人都通过改
编一些成熟的加壳程序来产生自己的加壳程 序。 其实改编upx也是很简单的。因为upx的源代码是公开的
,所以可以下载它的源代码来瞧瞧。upx可以压缩很多种类型 的可执行文件。因此如果自己只是想要压缩exe
程序,则只需要阅读与压缩exe文件相关的内容。这些代码是很少的。
改写upx一般需要注意一下几点:
1、保证修改后的加壳程序不会产生upx产生的特征码。有很多软件可以通过这些特征码识别出程序是经过upx
加壳的。
2、保证加壳之后,程序仍然可以顺利执行。
3、在一定程度上保证效率不会下降太多。
希望对你有帮助~
什么是加壳程序,为什么要加壳?
加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩,
改变其原来的特征码,隐藏一些字符串等等,使一些资源编辑软件不能
正常打开或者修改。类似WINRAR的效果,只不过这个压缩之后的文件,
可以独立运行,解压过程完全隐蔽,都在内存中完成。
解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才
能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么东东。
软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳
后的软件运行速度的差别。
当你加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是
这个外壳程序。当你执行这个程序的时候这个壳就会把原来的程序在内存
中解开,解开后,以后的就交给真正的程序。所以,这些的工作只是在内
存中运行的,是不可以了解具体是怎么样在内存中运行的。
通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一
些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。因为有的时
候程序会过大,需要压缩。但是大部分的程序是因为防止反跟踪,防止程
序被人跟踪调试,防止算法程序不想被别人静态分析。加密代码和数据,
保护你的程序数据的完整性。不被修改或者破。(有些木马和病毒利用加
壳伪装成正常程序)
参考资料: http://zhidao.baidu.com/question/95004366.html