高分教我特征码,加跳转免杀

高分教我特征码,加跳转免杀,第1张

一.关于免杀的来源

为了让我们的木马在各种杀毒软件的威胁下活的更久.

二.什么叫免杀和查杀

可分为二类:

1.文件免杀和查杀:不运行程序用杀毒软件进行对该程序的扫描,所得结果。

2.内存的免杀和查杀:判断的方法1>运行后,用杀毒软件的内存查杀功能.

2>用OD载入,用杀毒软件的内存查杀功能.

三.什么叫特征

1.含意:能识别一个程序是一个病毒的一段不大于64字节的特征串.

2.为了减少误报率,一般杀毒软件会提取多段特征串,这时,我们往往改一处就可达到

免杀效果,当然有些杀毒软件要同时改几处才能免杀.(这些方法以后详细介绍)

3.下面用一个示意图来具体来了解一下特征码的具体概念

四.特征码的定位与原理

1.特征码的查找方法:文件中的特征码被我们填入的数据(比如0)替换了,那杀毒软

件就不会报警,以此确定特征码的位置

2.特征码定位器的工作原理:原文件中部分字节替换为0,然后生成新文件,再根据杀

毒软件来检测这些文件的结果判断特征码的位置

五.认识特征码定位与修改的工具

1.CCL(特征码定位器)

2.OOydbg (特征码的修改)

3.OC用于计算从文件地址到内存地址的小工具.

4.UltaEdit-32(十六进制编辑器,用于特征码的手工准确定位或修改)

六.特征码修改方法

特征码修改包括文件特征码修改和内存特征码修改,因为这二种特征码的修改方法

是通用的。所以就对目前流行的特征码修改方法作个总节。

方法一:直接修改特征码的十六进制法

1.修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制.

2.适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能

否正常使用.

方法二:修改字符串大小写法

1.修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.

2.适用范围:特征码所对应的内容必需是字符串,否则不能成功.

方法三:等价替换法

1.修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.

2.适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.

如果和我一样对汇编不懂的可以去查查8080汇编手册.

方法四:指令顺序调换法

1.修改方法:把具有特征码的代码顺序互换一下.

2.适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行

方法五:通用跳转法

1.修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.

2.适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.

七.木马免杀的综合修改方法

文件免杀方法:

1.加冷门壳

2.加花指令

3.改程序入口点

4.改木马文件特征码的5种常用方法

5.还有其它的几种免杀修改技巧

内存免杀方法:

修改内存特征码:

方法1>直接修改特征码的十六进制法

方法2>修改字符串大小写法

方法3>等价替换法

方法4>指令顺序调换法

方法5>通用跳转法

木马的免杀[学用CLL定位文件和内存特怔码]

1.首先我们来看下什么叫文件特征码.

一般我们可以这样认为,一个木马程序在不运行的情况下,用杀毒软件查杀,若报警为病毒,说明存在该查毒软件的文件特征码的。

2.特征码的二种定位方法.

手动定位和自动定位

3.文件特征码的定位技巧.

通常用手动确定大范围,用自动精确定位小范围.

下面分别用瑞星和卡巴为例,实例演示并结合手动定位和自动定位二种方法来准确定位文件特征码。要定位的对像以下载者为例。

用卡巴来定位文件特征码

⑴.手动定位:

1 打开CLL

2 选择设置中的 总体参数 ,,,,,选中文件特征码手动定位,,,,以及路径

3选中设置中的 手动参数,,,,,选择替换方式 选中,,,总共生成规定个数的文件,,,生成个数为1000

4选择文件中的 特征码检测,,文件特征码检测,,,打开程序(要定位特证码的程序)

5在d出的PE窗口中 直接点确定 ,之后d出的窗口在点确定

6然后等CLL生成完毕之后用杀毒软件进行查杀

7在CLL中选 *** 作,结果定位,选中刚刚用来存放检测结果的文件夹

8在CLL中选

文件免杀之加花指令法

一.花指令相关知识:

其实是一段垃圾代码,和一些乱跳转,但并不影响程序的正常运行。加了花指令后,使一些杀毒软件无法正确识别木马程序,从而达到免杀的效果。

二.加花指令使木马免杀制作过程详解:

第一步:配置一个不加壳的木马程序。

第二步:用OD载入这个木马程序,同时记下入口点的内存地址。

第三步:向下拉滚动条,找到零区域(也就是可以插入代码的都是0的空白地方)。并记下零区域的起始内存地址。

第四步:从这个零区域的起始地址开始一句一句的写入我们准备好的花指令代码。

第五步:花指令写完后,在花指令的结束位置加一句:JMP 刚才OD载入时的入口点内存地址。

第六步:保存修改结果后,最后用PEditor这款工具打开这个改过后的木马程序。在入口点处把原来的入口地址改成刚才记下的零区域的起始内存地址,并按应用更改。使更改生效。

三.加花指令免杀技术总节:

1.优点:通用性非常不错,一般一个木马程序加入花指令后,就可以躲大部分的杀毒软件,不像改特征码,只能躲过某一种杀毒软件。

2.缺点:这种方法还是不能过具有内存查杀的杀毒软件,比如瑞星内存查杀等。

3.以后将加花指令与改入口点,加壳,改特征码这几种方法结合起来混合使用效果将非常不错。

四.加花指令免杀要点:

由于黑客网站公布的花指令过不了一段时间就会被杀软辨认出来,所以需要你自己去搜集一些不常用的花指令,另外目前还有几款软件可以自动帮你加花,方便一些不熟悉的朋友,例如花指令添加器等。

五.常见花指令代码

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

1。 VC++ 5.0

PUSH EBP

MOV EBP,ESP

PUSH -1

push 515448

PUSH 6021A8

MOV EAX,DWORD PTR FS:[0]

PUSH EAX

MOV DWORD PTR FS:[0],ESP

ADD ESP,-6C

PUSH EBX

PUSH ESI

PUSH EDI

jmp 跳转到程序原来的入口点

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

2。c ++

push ebp

mov ebp,esp

push -1

push 111111

push 222222

mov eax,fs:[0]

push eax

mov fs:[0],esp

pop eax

mov fs:[0],eax

pop eax

pop eax

pop eax

pop eax

mov ebp,eax

jmp 跳转到程序原来的入口点

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

3。跳转

somewhere:

nop /"胡乱"跳转的开始...

jmp 下一个jmp的地址 /在附近随意跳

jmp ... /...

jmp 原入口的地址 /跳到原始oep

--------------------------------------------------

新入口: push ebp

mov ebp,esp

inc ecx

push edx

nop

pop edx

dec ecx

pop ebp

inc ecx

loop somewhere /跳转到上面那段代码地址去!

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

4。Microsoft Visual C++ 6.0

push ebp

mov ebp,esp

PUSH -1

PUSH 0

PUSH 0

MOV EAX,DWORD PTR FS:[0]

PUSH EAX

MOV DWORD PTR FS:[0],ESP

SUB ESP,68

PUSH EBX

PUSH ESI

PUSH EDI

POP EAX

POP EAX

POP EAX

ADD ESP,68

POP EAX

MOV DWORD PTR FS:[0],EAX

POP EAX

POP EAX

POP EAX

POP EAX

MOV EBP,EAX

JMP 原入口

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

5。

在mov ebp,eax

后面加上

PUSH EAX

POP EAX

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

6.

push ebp

mov ebp,esp

add esp,-0C

add esp,0C

mov eax,403D7D

push eax

retn

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

push ebp

mov ebp,esp

push -1

push 00411222

push 00411544

mov eax,dword ptr fs:[0]

push eax

mov dword ptr fs:[0],esp

add esp,-6C

push ebx

push esi

push edi

add byte ptr ds:[eax],al

jo 入口

jno 入口

call 下一地址

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

7.

push ebp

nop

nop

mov ebp,esp

inc ecx

nop

push edx

nop

nop

pop edx

nop

pop ebp

inc ecx

loop 任意地址

nop

nop

———————————————

nop

nop

jmp 下一个jmp的地址 /在附近随意跳

nop

jmp 下一个jmp的地址 /在附近随意跳

nop

jmp 下一个jmp的地址 /在附近随意跳

jmp 入口

文件免杀之加壳与改入口点法

一.壳的相关知识:

1.壳的分类:压缩壳和加密壳

2.壳的作用:保护和文件免杀

二.加壳免杀的几个弱点

1.不能躲过像瑞星这类具有内存查杀功能的杀毒软件。

2.一般不能躲过卡巴的查杀

因为卡巴采用了一种叫虚拟机技术。首先把加了多层壳的木马程序在虚拟机环境下运行一下,这样木马程序就会现出本来面目,这样无论你加了多少层壳,在运行后程序还是要暴露自已的。所以大家在加壳测试过程中也会发现,能过其它的多种杀毒软件,但卡巴始终很难过,其原因就是卡巴的虚拟技术在作怪。

三.是不是现在的加壳免杀已失去意义

每种免杀技术都有他的缺点和优点,比如加壳,首先要找到比较生僻的壳,而且可能以后很快被查杀.同时也不能过内存查杀,也很难过卡巴.但它 *** 作方便,通用性好加一个壳,可能过好几个杀毒软件.又比如修改特征码.首先 *** 作比较烦,要定位,要修改,改好后还要测试是否能正常使用.同时针对性非常强.只能针对某一种杀毒软件的免杀,各种杀毒软件的特征码都不一样,所以要躲过多种杀毒软件查杀,就要分别定位,修改每种杀毒软件的特征码.这样是相当麻烦的.但它可以通过修改特征码来躲过瑞星内存和卡巴的查杀.

所以以后免杀技术会把加壳,加花指令,改入口点,改特征码这几种方法结合起来使用.对付瑞星的内存查杀,我们可以修改内存特征码,对付卡巴的虚拟机技术.我们可以修改卡巴的特征码.在加上加冷门壳,加花指令,改入口点.综合这些方法就可以打造金钢不死之身!

四.加壳免杀实例演示部分:

1.加生僻壳免杀:实例演示

2.加伪装壳免杀:实例演示

3.多重加壳免杀:(用木马彩衣进行多重加壳)

五.改入口点免杀法:

1.改入口点免杀原理:杀毒软件一般都检测病毒还原之后的代码,而且一般都把代码段开始的前40个字节作为特征值.入口点改变了,说明也就破坏了特征码,这样就达到免杀的效果.

2.改入口点免杀方法一:入口地址加1法.

*** 作步骤:

第一步:配置一个无壳的木马服务端.

第二步:用PEditor打开木马程序服务端.在入口点处的地址加1.然后点应用更改就可以了.

评论:该方法对不同木马程序,有不同的效果,其它杀毒软件一般都可以躲过,但有些程序改过后还是被卡巴查杀.同时也不能过内存查杀,但以后结合加花指令,加壳等等方法,效果将非常不错.

3.改入口点免杀方法二:变换入口地址法.

*** 作步骤:

第一步:用OD载入无壳木马程序服务端.

第二步:把入口点的开始二句代码(大都为push ebp mov ebp,esp).移到零区域也是就空白区域地方.并记下零区域的内存地址.同时在后面加一句跳转命令:JMP 到第三条指令的地址.

第三步:然后修正并保存,最后用PEditor打开该程序.把入口点改成刚才在零区域记下的内存地址.

评论:该方法效果比方法一要好.经测试,用方法一改过后被卡巴查出来,用方法二就查不出来. 以后可以结合加花指令,加壳,改特征码,打造金钢不死之身!

采用以上的方法可以躲过不少杀毒软件的追杀,并且方便快速,又很简单,所以是免杀里非常主要的手段,但是一定要检查文件是不是能够正常运行。

免杀新技术[虚拟机加密免杀]和[壳中改籽]

一 虚拟机加密免杀

最新免杀技术——虚拟机加密代码应用并非传统的修改特征码,也不是修改入口点+花指令,更不是

加壳压缩!是最新的一种免杀技术!借于这种技术你可以千变万化,是免杀对新手来说更为简单!

大家对虚拟机vmprotect是否有所了解,这个是最新的加密工具!可以加密PE文件中任何一句或一段代码

自然可以给我们用来免杀了!

免杀工具:vmprotect1.07或1.06 PEID UPX

免杀步骤:原理说明:加密区段代码使杀毒软件无法识别!你可以找特征码,找到后加密特征码的代码!

用PEID查看入口点:假如这里的入口点是0007DB74 基址是 00400000

3.用虚拟机vmprotect打开要免杀的文件,添加地址0047DB74=00400000+0007DB74 基址+入口点

4.选代码区域->转存->F9保存

5.测试运行->可以成功运行

6.用UPX压缩一下,缩小体积,OK 免杀成功

总结:虚拟机加密代码是比较新的免杀技术,可以和其他免杀技术有机的集合在一起,让你的木马变成金刚不坏.大家要多多掌握。

二 壳中改籽技术免杀

这种免杀很少有人用,所以免杀效果非常好,各大黑客网站也很少见到介绍,这里我把别人做黑洞免杀的文章发到这里,供大家研究.估计是浩天写的文章

先讲一下为什么这种技术叫“壳中改籽”。配置一个黑洞的服务端,然后用PEiD.exe来查看它是用什么加的壳,查到是UPX加的变态壳,程序的区段都给隐藏了,那么先得给黑洞服务端脱壳。用 upxfix.exe打开它,然后在Decompress method里面选择5,点击fix,这样就修复了。再用PEiD.exe查一下,看现在可以看到区段了吧。

为什么我一再提到这个区段呢?其实它就是文章的重点,也就是壳里面的籽。继续脱壳,用UPXShell打开修复好的黑洞服务端,点击解压缩,完成后我们可以看到程序由原来的201 kb变成了506 KB ,大了一倍多。

有人可能要问为什么一定要给它脱壳呢?直接修改不可以吗?其实主要是因为黑洞的服务端里还有一个用做键盘记录的dll文件,它也要做免杀处理。用 Resscope1.92打开黑洞的服务端,这个可是绝好的exe资源编辑器啊,先选择dllfile里面的getkey,然后点击文件→导出资源,这样dll文件就导出来了。它也是用upx加的变态壳,因为区段被加密了,所以我们也要给它脱壳,再加壳。脱壳的过程和先前脱黑洞服务端一样先用upxfix.exe打开它,但是这里注意在Decompress method里面,不要选择5,而是选择2修复,不然的话就脱不了壳了。

接着用UPXShell解压缩,现在dll文件的大小由原来的11 kb变成了18.5 kb,然后再用UPXShell重新给它加上壳。

三、修改upx壳里面的籽

把UPX加过壳的dll文件,用PEiD.exe打开查看,这里有几个数据需要我们记录,等下和修改后的文件做比较用。

先分别把程序入口点:000C220、文件偏移量:00002620 ,记录下来,然后点击查看EP区段,在区段查看上面再点右键选择cave查找器,把upx壳区段upx1的RVA:0000C3B5、偏移:000027B5等参数也记录下来。

关键的时刻到了,reloc.exe闪亮登场。因为reloc 是一款命令下的工具,所以为了 *** 作方便,我建议大家写一个bat文件和reloc放在同一目录。我们开始记录的数据现在派上用场了,编辑bat文件格式如下:

reloc 待修改程序 $程序入口 $文件偏移量 $壳的区段入口 $区段偏移 参数

那么对应我们的黑洞键盘记录dll文件所记录的数据,这个bat就应该这样写:

reloc 键盘记录.dll $C220 $2620 $C3B5 $27B5 5

数据前面的零不要写到bat里面,另外最后面的这个参数大家注意,其实它是设置修改时的偏移量的,一般dll文件选择5,exe文件选择5-9之间的数,一般选择6就好了。

设置完了,我们运行这个bat文件,开始修改。完毕之后我分别用国内和国外最强的杀毒软件江民、诺盾和卡巴斯基对键盘记录.dll进行扫描,它们均未发现病毒,我们的木马成功躲了过去。用PEiD.exe重新打开,可以发现PEiD已经无法分别键盘记录.dll是什么壳了,把原来记录的几个数据和现在对比一下发现程序入口和文件偏移量没有,而壳区段入口和区段偏移却改变。

飘舞的风在上一期的文章里面说道:“peidv0.92是通过每个程序的开头几十个字节来比较是那种壳。”,看来不仅仅如此,peidv0.92还把壳的区段入口开头的几十个字节也作为了用来判断壳的类型的特征代码,杀毒软件也是如此,这样简单修改一下我们的木马就免杀了。

着把这个已经修改好的dll文件,导回到黑洞的服务端,方法和导出dll是一样的,我就不再讲述了,然后把它用UPXShell再次加壳,加壳后的大小为200 kb。

现在可以开始我们的第二次免杀之旅了,同样用PEiD.exe把程序入口、文件偏移量、壳的区段入口、区段偏移,等数据记录下来,写入bat文件。

我的bat是这样写的:

reloc 1.exe $88620 $30A20 $887A3 $30BA3 6

我前面已经讲过了,修改exe文件的时候,参数选择5-9之间的数,一般选择6就好了。现在运行bat文件,黑洞服务端的免杀就全部完成了。用PEiD.exe查看,显示的是“Nothing found”看来PEiD已经不认识它了,再用江民、诺盾和卡巴斯基查杀,均显示无病毒,呵呵,欺骗成功。

四、结语

经过这么简单的修改以后效果是非常好的,相信以后这样的免杀技术将会成为主流技术,因为它简单实用。

分析它实现免杀的原理,不难看出换一个角度思考问题的重要性,从壳的修改转到壳中籽的修改,不能不说这是一种创新,

它使木马的免杀之路变宽了。最后谢谢 “朋友的家”提供一款这样优秀的工具。如果大家能够把这种技术和我前面提到的另外三种结合起来使用,相信它将是无懈可击的

免杀新技术之OD一半定位法

不知道是那位牛人想出来把这方法用到木马免杀上,这个方法让很多不会用偏移定位特怔码的朋友也能够很容易掌握到特怔码的位置,实在是很高明又很简单的免杀好方法.这里我就根据他的方法详细介绍OD一半定位法

所谓OD一半定位法很简单,就是用OD载入需要做免杀处理的文件,用NOP填充一半的代码然后保存,接着用杀毒软件查毒,如果有毒就在把另外一半用NOP填充,如果没报毒就证明特怔码就在刚刚填充的那一半,然后又对那一半进行1/2的NOP填充,这样不断缩小范围,很容易就找到需要修改的代码部分。如果是做内存免杀就把NOP填充好的文件用OD打开进行内存杀毒。怎么样?是不是很容易掌握的方法?

不过需要注意的是新手用这个方法最好每做一步都把NOP填充的开头和结局部分的地址用纪事本保存,免得一旦忘记又从头来.

如果特怔码不止一处,你就要大致定位到有特怔码这一大段,然后把这一段的一半用NOP填充并且保存,接着打开保存的文件对另外一半继续刚刚开始的步骤,这样很快就能够定位出几处特证码所在的位置.

还是那句话,熟练就好,另外需要注意填充后查出的病毒名字有没有改变,如果改变就证明你填充的那段存在特怔码,这样可以省掉不少时间。

文件免杀之文件特征码修改五大法宝

方法一:修改字符串大小写法

1.修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.

2.适用范围:特征码所对应的内容必需是字符串,否则不能成功.

方法二:直接修改特征码的十六进制法

1.修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制.

2.适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用.

方法三:指令顺序调换法

1.修改方法:把具有特征码的代码顺序互换一下.

2.适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行。

方法四:通用跳转法

1.修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.

2.适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.

方法五:等价替换法

1.修改方法:把特征码所对应的汇编指令命令中替换成功能类似的指令.

2.适用范围:特征码中必需有可以替换的汇编指令.替换后指令功能要不变比如JN,JNE 换成JMP,这里要对汇编要比较熟悉,读懂指令后可以替换功能相同的指令。也可以去查8080汇编手册[计算机专栏里有]

实战特怔码免杀

第一步:首先用内存定位法来准确定位瑞星内存特征码的具体位置

第一阶段:自动参数中,生成文件间隔秒数设为4,最小替换字节数设为100字节。(主要用于大体定位内存特征码)

第二阶段:自动参数中,生成文件间隔秒数设为4.最小替换字节数设为4字节。(主要用于准确定位内存特征码)

第二步:修改特征码

用OD打开文件,找到特怔码所在位置,并且判断适合用那种方法修改,如果对方法不太熟悉,并且特怔码不止一处,那就需要你改一处就保存并且在虚拟机里试验能否正常运行[虚拟机可是做免杀的必备工具,强烈建议你安装,因为你不可能就在自己的机器上运行木马吧?在说也不可能在你机器上同时安装N种杀软,那你机器不慢死,更重要还可以用来试验别人提供的软件有没有木马]

木马免杀技术之独门绝技

绝技一:快速搞定瑞星文件查杀

*** 作步骤:

第一步:用OD载入,来到程序的入口点。

第二步:把入口点的第一句PUSH EBP 改成POP EBP 然后保存就可以躲过瑞星的表面查杀。

绝技二:快速定位与修改瑞星内存特征码

原理:因为目前的内存查杀杀毒软件,只有瑞星才能威胁到我们的木马。也就是说只要搞定瑞星的内存查杀,那我们的木马在内存就畅通无阻了. 但由于技术原因,目前瑞星的内存特征码在90%以上把字符串作为病毒特征码,

这样对我们的定位和修改带来了方便.

*** 作步骤:

第一步:首先用特征码定位器大致定位出瑞星内存特征码位置.

第二步:然后用UE打开,找到这个大致位置,看看,哪些方面对应的是字符串,用0替换后再用内存查杀进行查杀.直到找到内存特征码后,只要把字符串的大小写互换就能达到内存免杀效果.

绝技三:如何快速躲过诺顿的查杀

诺顿的查杀特点:大家有时候会发现,通过改特征码,加花指令,改内存特征码,等等,卡巴,江民,金山,瑞星都过了,但无论如何都过不了诺顿,这时候是不是感到很纳闷.其实诺顿特征码的定义和其它杀毒软件不一样,其它杀毒软件的特征码都在代码段而只有它把特征码定义在PE头文件里面.而在头文件里面,一般都用字符串作为病

毒特征码,知道了原理,就有下面的二种方法来应付.

方法一:只要把头文件的字符串的大小字互换一下就可以搞定了.

方法二:有二款压缩软件WinUpack和北斗星,经过他们的压缩,会把我们的木马程序的头文件改的面目全非.所以把我们的木马做好其它的杀毒软件的免杀后,再用这二款压缩软件的压缩就可以躲过诺顿的查杀.

绝技四:一个不太通用的免杀方法

免杀方法一:把入口点第三句开始的几行(20字节内)汇编代码移到零区域去执行,也达到一定的免杀效果.

绝技五:用VC++加了花指令后入口点下移法

*** 作过程:加花指令后,可以把入口点下移好一位,这样可以进一步达到免杀效果.

一.木马免杀综合方案

修改内存特征码--->1>入口点加1免杀法 1>加压缩壳1>--->再加壳或多重加壳

2>变化入口地址免杀法 2>加生僻壳--->2>加壳的伪装.

3>加花指令法免杀法 3>加压缩壳3>--->打乱壳的头文件

4>修改文件特征码免杀法

以上免杀方法可以自由组合成多种不同的免杀方案。

二.常用免杀方案

1.实例完全免杀方案一:

内存特征码修改+加UPX壳+秘密行动打乱壳的头文件。

所需工具:UPX加壳工具,秘密行动

2.完全免杀方案二:

内存特征码修改+加花指令+加压缩壳

3.完全免杀方案三:

内存特征码修改+加压缩壳+加壳的伪装或多重加壳

4.完全免杀方案四:

内存特征码修改+去头变换入口点地址+压缩壳

5.完全免杀方案五:

内存特征码修改+修改各种杀毒软件特征码+压缩壳

6.完全变态免杀方案六:

内存特征码修改+加花指令+去头变换入口点+加UPX壳+用秘密行动打乱壳的头

文件

三.解决加花指令后运行出错问题

1.分析其原因:我们加花指令时,一般都找代码段最后面的空白代码地方也就是所谓的零区域,然后把我们准备好的花指令填进去,然后一个跳转跳到入口点。但是我们木马的体积比较大,从入口点到最后面零区域的间隔比较远,所以从低部跳到头部由于间隔较远就非常容易出错。

3.新研究的免杀方法完美的解决了该问题:我把它取名为:中间过渡跳转法

实例演示:中间过渡跳转法来修改灰鸽子V1.22版或VIP2.0版。

中间过渡中转法实现原理:首先我们在代码段的中间位置,备份部分代码,然后把我们要添加的花指令写进去,写完后,再跳到零区域,在这个零区域填入刚才我们备份好的代码.填完后又要跳回填入花指令的生面.总之一句话:把花指令填在代码中间,被花指令覆盖的代码移到零区域去执行,然后又要跳回来.最后把入口点改成花指令的首地址.这样就算完事了.

4.该新的免杀技术优点:以前的花指令只能填到零区域,也就是说入口点一般都比较后面,所以有时会被卡巴查杀,但有了这种新方法后,程序入口点就变的非常灵活,可以定位在代码段的任何位置,每定位一个新的入口点就是一种新的免杀方案.而且这种方法对付卡巴也很有效.把入口点放到代码段的中间,是杀毒软件万万想不到的,所以免杀效果是最好的.同时他解决了由于跳转太远使程序无法运行的缺点,所以这种方法是相当完美的免杀方法.希望灵活运用

一、写花指令生成器必备知识

1、花指令原理

花指令是程序中的无用代码,程序对它没影响,少了它也能正常运行。加花指令后,杀毒软件对木马静态反汇编时,木马的代码就不会正常显示出来,加大杀毒软件的查杀难度。

2、如何写花指令

下面我们先看看一段花指令,分析理解它的原理:

PUSH EBP

MOV EBP,ESP

push edx

pop edx

inc ecx

dec ecx

add esp,21

add esp,-21

add esp,10

sub esp,10

JMP 附近空地址随便乱跳

JMP 原入口点

花指令一般有三部分,开头就是PUSH EBP和MOV EBP,ESP这两句在大部分程序开头可以经常看到。PUSH EBP是把EBP压入堆栈,MOV EBP,ESP是把ESP的值赋给EBP,不懂没关系,只要知道PUSH EBP和MOV EBP,ESP这两句经常出现在文件开头就可以了,随便用OllyDbg打开一个不加壳的文件载入后经常停在PUSH EBP MOV EBP,ESP。

接下来就是花指令啦,push edx是把通用寄存器EDX压入堆栈,pop edx是把通用寄存器EDXd出堆栈,这两句和起来就相当于什么也没做。接下来的inc ecx,ecx用来保存计数值,也是寄存器,INC是加1;下面的dec ecx中的dec是减1,加1减1相抵消,又是什么也没做。add esp,21这是寄存器esp加21,add是加上,下面一句add esp,-21是寄存器esp加-21,小学知识,+21+(-21)=0,还是什么也没做。再下来add esp,10寄存器esp加21,sub esp,10寄存器esp减10,sub是减去。一个+10,一个-10相互抵消了。

最后是跳转语句,我用两句JMP,第一句在花指令附近随便跳到个空地址,第二个JMP是从空地址跳回文件的原入口点。

3、如何写入花指令

我们来看看加花指令的一般步骤:

1、准备好要加的花指令;

2、准备未加壳的黑客软件;

3、用OllyDbg打开这个黑客软件,记下入口点的内存地址;

4、找到零地址,一句一句写入花指令,再用JMP跳回程序入口点;(如果找不到空白地址,我们可以用zeroadd加区段,英文软件,我汉化好的, *** 作简单就不演示了。)

5、保存后用Peditor修改文件入口点为开始写花指令的地址。这样运行程序就先运行花指令再跳回程序的原始开头执行程序了;

6、检测程序是否正常运行和免杀效果。

加壳时,会将加壳器前的EXE文件改名为*.BAT,再对其进行加壳,并生成加壳后的新EXE.这样做的目的是防止加壳过过程中的意外损坏源EXE文件。如果加壳后*.EXE不可用,可能就是加壳失败,不过没关系,将那个*.BAT改为*.EXE就可以恢复文件,以便重新加壳。如果还可以的话,可以考虑换一种加壳方式。

另外,加花不当也可能使*.EXE不可用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11685379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存