关于启发杀毒jack说的已经很完善了。
大家不明白的可以看他的帖子。
其实《树和牛的故事》还说的不够充分
我也说个故事把
《一个钉子和一个国家灭亡的故事》
战争中丢了一个钉子的故事
铁匠定马掌时丢了一个钉子
少了一个钉子掉了一个马掌
掉了一个马掌折了一匹战马
折了一匹战马伤了一位将军
伤了一位将军输了一次战争
输了一次战争败了一场战役
败了一场战役亡了一个国家
代码和代码的关系比我们想象更要密切
其实看着启发杀毒是赢得了一场战役,但大家想想
如果有那一个钉子,不丢那个马掌,不折那匹战马,不伤那位将军…………
有太多不确定了,只要我们破坏了其中任何一个环节启发杀毒就会全线溃败。
NOD32通过PE结构寻找特征代码 以导入表函数的修改为例 (这个简单,其实还有更复杂的上次那个木马就是12处关联,但是12处关联破坏一个就免杀了)
首先他会从PE MZ那里开始计算PE HARD的位置 在从PE HARD处寻找数据段 计算数据段位置寻找指针的提示位置,然后通过指针的提示位置找到指针,通过指针找到导入表函数。
启发杀毒理解比较困难但是修改还是很简单的,可以说比普通的特征码更容易。我们只要破坏他以上分析的任何一个环节他就会全线溃败。
其实卡巴为我们提供了更多修改的机会
因为他的特征是关联的,只要破坏他的关联就行了
就好像
1+2+3+4+5+6+7+8+9=45一样
特征码是45.当然会有很多选择我们可以改"1"也可以改“2”还可以改“3”……
改掉一个他下面的关联就被破坏了,也就免杀了,
在透漏点 启发杀毒的经典改法
…………………………………………………………………………………………
《子程序加花法》——请注意寄存器数据
《 调用移位法》 ——多级“跳”
《结构修改法》——pe结构 程序关键跳 子程序调换
《大小写调换法》——修改push 和 寄存器
…………………………………………………………………………………………
在多的我就不说什么了,希望大家有新的见解也我交流。
对现在启发技术的一些理解
http://www.jksing.com/bbs/thread-10300-1-1.html
QQ:281297080 (无聊的不要加)
原创啊~
单独做成一个帖子,方便以后我继续补充
昨天免杀pcshare的时候给大家共享了特征码 《NOD32 I 服了U》
其中——
流动的火在一楼说 引用:
流动的火:
启发,基因启发啊。你会越查越多,其实他没有那么多的。
这里我我纠正一下 引用:
基因启发,基因启发是通过比对文件当中的关键代码,来查杀新病毒以及变种,这种方式在现阶段的优势比较明显,查杀率高,占用内存少,但从缺点来看,这种启发技术在现阶段已经暴露出来了一个很严重的问题就是误报过于严重,在国外的误报测试当中,使用这项技术的杀软普遍误报十分厉害,像蜘蛛,红伞,飞塔等等。而从长远来看,这种技术随着时间的增长,病毒的种类越来越多,必定造成基因库的臃肿,随之造成的结果就是杀软的运行效率降低,占用资源量的提升,甚至出现不同基因代码间的冲突,所以这项技术虽然在现阶段被看好,而且在技术上也没什么难度。
这个是基因启发启发的定义,但是NOD32这么多特征完全来自广谱查杀jack的文章曾说过: 引用:
例如,如果一段程序以如下序列开始:MOV AH ,5/INT,13h,即调用格式化盘操作的BIOS指令功能,
那么这段程序就高度可疑值得引起警觉,尤其是假如这段指令之前不存在取得命令行关于执行的参数选项,又没有要求
用户交互性输入继续进行的操作指令时,就可以有把握地认为这是一个病毒或恶意破坏的程序。
例子:一个免杀卡巴的木马加一个被杀的花卡巴会提示type win32病毒 和感染pe的病毒一样
卡巴会确定他的入口点,一般程序的入口点一般不会在程序的最后一个PE节里。如果OEP在最后一个PE节里就值得卡巴怀疑。所以有的“牛人”在2007年初提出了OEP虚拟化…………但是我不懂编程但是我们可以修改PE结构让入口不在最后一个PE节里,比如在木马修改(非PE感染形)用跳转法移动头部某些代码,在头部空出广大区域加花。或者加完花(感染以后)在加一个空文件节。(这个适用与病毒编程)
写着写着就有点跑题……………………
对于NOD32 pcshare特征码超多的问题
解释很简单 pcshare是一个典型的4代木马(也有人称为3代,看分代标准)
很多代码很典型,适用于杀软研究广谱查杀。NOD32的启发更偏向于基因启发,但他没有独立的基因库,用病毒库代替了基因库,通过在病毒库里比对代码,确认病毒,看到我前面对基因启发的介绍,相信对NOD32病毒库小不难理解吧,很明显NOD32的开发者也意识到了这点,所以NOD32对启发可以报的病毒是不入库的。对于pcshare4处关键作为启发杀毒,剩下26个特征是辅助定位,4处关键修改后少量修改辅助定位就可以了。
流动的火给出的解决方案正确但是理论不对。
但是如果大家把那个dll下载下来分析代码你可以发现
只有
[特征] 00001B34_00000002
[特征] 000015C6_00000002
[特征] 00002468_00000002
[特征] 000025C6_00000003
这4个属于高级启发杀毒特征码(看代码关联)
其中[特征] 00002468_00000002修改时要注意
子程序关联了2处调用
修改笔记我有空会整理贴出来的
jack支持你哦