木马免杀之汇编花指令技巧
- 格式:doc
- 大小:26.50 KB
- 文档页数:10
其實是一段垃圾代碼,和一些亂跳轉,但並不影響程式的正常運行。
加了花指令後,使一些殺毒軟體無法正確識別木馬程式,從而達到免殺的效果。
二.加花指令使木馬免殺製作過程詳解:第一步:配置一個不加殼的木馬程式。
第二步:用OD載入這個木馬程式,同時記下入口點的記憶體位址。
第三步:向下拉捲軸,找到零區域(也就是可以插入代碼的都是0的空白地方)。
並記下零區域的起始記憶體位址。
第四步:從這個零區域的起始位址開始一句一句的寫入我們準備好的花指令代碼。
第五步:花指令寫完後,在花指令的結束位置加一句:JMP剛才OD載入時的入口點記憶體位址。
第六步:保存修改結果後,最後用PEditor這款工具打開這個改過後的木馬程式。
在入口點處把原來的入口位址改成剛才記下的零區域的起始記憶體位址,並按應用更改。
使更改生效。
三.加花指令免殺法實例演示部分:實例演示一:NC加花指令免殺演示過程。
實例演示二:阿拉大盜主程序免殺之加花指令和入口點加1法綜合應用。
實例演示三:阿拉大盜主程序免殺之加不同花指令免殺演示(作業)綜合實例演示:灰鴿子MINI版主程序免殺操作過程:1>.加花指令2>. 入口點加13>.變換入點地址法四.加花指令免殺技術總節:1.優點:通用性非常不錯,一般一個木馬程式加入花指令後,就可以躲大部分的殺毒軟體,不像改特徵碼,只能躲過某一種殺毒軟體。
2.缺點:這種方法還是不能過具有內存查殺的殺毒軟體,比如瑞星內存查殺等。
3.以後將加花指令與改入口點,加殼,改特徵碼這幾種方法結合起來混合使用效果將非常不錯。
好了,今天的課就結束了,下節課再見!實踐操作:1.把駭客工具NC加一段VC++花指令代碼以達到免殺效果,最後測試能否正常使用VC++程式的入口代碼:PUSH EBPMOV EBP,ESPPUSH -1push 415448 -\___PUSH 4021A8 -/ 在這段代碼中類似這樣的運算元可以亂填MOV EAX,DWORD PTR FS:[0]PUSH EAXMOV DWORD PTR FS:[0],ESPADD ESP,-6CPUSH EBXPUSH ESIPUSH EDIADD BYTE PTR DS:[EAX],AL /這條指令可以不要!jo 00401000 /原入口jno 00401000 /原入口db 0e8h2.把駭客工具SNIFF加下面一段花指令,並結合入口點加1,最後測試能否正常使用push ebpmov ebp,espinc ecxpush edxnoppop edxdec ecxpop ebpinc ecxjmp (木馬剛載入時的入口地址)3.把駭客工具Findpass加以下一段花指令,以達免殺效果,並測試使用是否正常。
第章花指令花指令简介:花指令(junk code) 意思是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。
经典的是一些跳转指令,目标位置是另一条指令的中间,这样在反汇编的时候便会出现混乱。
花指令有可能利用各种jmp, call, ret, 一些堆栈技巧,位置运算,等等如:jz labeljnz labeldb thunkcodelabel:mov ax, 8xor ax, 77...这里假设从label伪指令开始是我们以mov ax,8打头的加密算法,当thunkcode 为一条非单字节指令(nop等)的机器指令的时候反汇编器可能就会把thunkcode和后面的mov一起反汇编,从而导致后面的一系列汇编语句的反汇编错误,这样就隐藏了真正的汇编语句。
【深层】伪装PEtite 2.2 -> Ian Luck 汇编代码:============================伪装代码部分:============================mov eax,0040E000push 004153F3push dword ptr fs:[0]mov dword ptr fs:[0],esppushfwpushadpush eaxxor ebx,ebxpop eaxpopadpopfwpop dword ptr fs:[0]pop eaxjmp XXXXXXXX '执行到程序的原有OEP============================【深层】伪装WCRT Library (Visual C++) DLL Method 1 -> Jibz 二进制代码+ 汇编代码:============================伪装代码部分:============================使用二进制粘贴以下代码:55 8B EC 83 7D 0C 01 75 41 A1 C0 30 00 10 85 C0 74 0A FF D0 85 C0 75 04 6A FE EB 17 68 0C 30 00 10 68 08 30 00 10 E8 89 00 00 00 85 C0 59 59 74 08 6A FD FF 15 08 20 00 10 68 04 30 00 10 68 00 30 00 10 E8 52 00 00 00 59 59粘贴完毕后,再添加2行汇编语句:jmp XXXXXXXX '执行到程序的原有OEPretn 0C1。
花指令的概念与认识花指令 1、什么是花指令什么是花指令?实际上,把它按照“乱指令”来理解可能更贴切一些,我们知道,汇编语言其实就是机器指令的符号化,从某种程度上看,它只是更容易理解一点的机器指令而已。
每一条汇编语句,在汇编时,都会根据cpu特定的指令符号表将汇编指令翻译成二进制代码。
而日常应用中,我们通过VC的IDE或其它如OD等反汇编、反编译软件也可以将一个二进制程序反汇编成汇编代码。
机器的一般格式为:指令+数据。
而反汇编的大致过程是:首先会确定指令开始的首地址,然后根据这个指令字判断是哪个汇编语句,然后再将后面的数据反汇编出来。
由此,我们可以看到,在这一步的反汇编过程中存在漏洞:如果有人故意将错误的机器指令放在了错误的位置,那反汇编时,就有可能连同后面的数据一起错误地反汇编出来,这样,我们看到的就可能是一个错误的反汇编代码。
这就是“花指令”,简而言之,花指令是利用了反汇编时单纯根据机器指令字来决定反汇编结果的漏洞。
2、花指令与免杀的关系加花就是,在程序汇编中,加了一些无用的废话,用来扰乱杀软对特征码的扫描对比,来达到免杀的目的。
是一种逃避方式,主要用于表面免杀。
加花指令的确没有改变特征码的位置,但是他改变了程序执行顺序,有的也能改变文件结构。
使杀毒软件扫描的时候跳到花指令处,即判断没有病毒。
通常情况下,在文件免杀的时候,加花指令是最简单、有效的方法,而且一般能通杀很多杀毒软件,所以一般文件免杀通用此法,前提是你的花指令不是常用的,最好能自己做出你个人的花指令,才会很有效。
3.花指令执行顺序花指令一般添加到程序的头部。
执行顺序:花指令入口-->执行花指令-->程序原入口-->执行原程序花指令的好坏直接决定程序是否可以躲避杀毒软件的查杀,花指令和壳的本质差不多,都是为了保护程序而做,所以我们做免杀的时候,可以多结合壳和花指令各自的优点对程序进行处理,达到更好的免杀效果。
大概步骤总结: 第一步:从编写手册中成对的提取几对第二步:打乱它们之间的顺序,也可不打乱第三步:中间插入几个nop或jmp,也可不插入第四步:最后添加跳转到入口地址指令第五步:把编写好的花指令添加到程序中后,测试是否可以正常运行,然后再用杀毒软件查杀 3、花指令的样本 PUSH EBP MOV EBP,ESP DEC EBP INC EBP ADD ECX,1 SUB ECX,-1 MOV EAX,DWORDPTR FS:[0] PUSH EAX MOV DWORD PTR FS:[0],ESP POP EAX MOV DWORD PTR FS:[0],EAX MOV CL,1 PUSH EAX SUB AL,90 POP EAX ADD ESP,-0C ADD ESP,0C PUSH EAX JNO 原始入口 ________________ push ebp mov ebp ,esp //常见的入口代码 add esp ,68 //以下的指令都是对称的(成对的) sub esp ,68 inc ecx dec ecx push edi pop edi push eax pop eax push edi pop edi inc ecx dec ecx nop jz 跳回入口点 //跳到程序的入口,执行原程序 jnz 跳回入口点 ____________ push ebp mov ebp, esp push eax push eax nop pop eax pop aex sub eax, 1 inc eax, 1 push 入口地址 retn。
一.免杀工具:myccl:特征码定位器PEID:查壳工具C32Asm:特征码修改工具[静态]Ollybg:特征码修改工具[动态]OC:文件地址内存地址换算器加花工具:怒剑狂花加区段工具:zeroadd加密工具:兼容性较好的,maskPE2.0和VMProtect v 1.4压缩工具:upx,aspack北斗壳二.熟悉掌握的术语与操作:加密工具操作花指令编写手工加花myccl复合特征码,内存特征码定位方法特征码修改三.研究免杀方法与技巧1.善于收集新免杀工具,有特效的压缩工具,免杀器等.比如收集一些可直接过杀软的压缩,加密工具2.理解免杀原理,熟悉各种杀毒软件的查杀特点3.多学习相关汇编知识相关汇编资料4.看别人优秀教程,举一反三.5.大胆的猜想与不断的实验和测试.四:特征码与花指令的详细定义与修改添加的方法等价替换、通用跳转、指令顺序调换、大小写替换、特征码十六进制加减1、NOP、填0、以及特殊常见指令的修改方法.JMP 无条件转移指令CALL 过程调用RET/RETF 过程返回.PUSH 压入堆栈.NOP 空操作.等价替换:修改方法:JMP = JE JNE je改成jle ja/jle适用范围:把特征码所对应的汇编指令命令中替换成类拟的指令通用跳转法:修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.(可以换成push xxxx retn)适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.指令顺序调换法:修改方法:把具有特征码的代码顺序互换一下.适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行修改字符串大小写法:修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.适用范围:特征码所对应的内容必需是字符串,否则不能成功.(注意:函数不能用这种方法)直接修改特征码的十六进制法(特征码十六进制加减1、nop)修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制、或者填充90(nop)或者填0适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用.test eax, eax很多程序都是用test eax, eax来做检测返回值是否为0,那么遇到test eax, eax 那么可以直接改or eax, eaxcall例子:call 11111111改成 call 22222222 (22222222为0区域)2222处jmp 11111111五:简单花指令的编写PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.ADD 加法.ADC 带进位加法.INC 加1.AAA 加法的ASCII码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减1.JMP 无条件转移指令CALL 过程调用RET/RETN 过程返回.。
木马免杀之汇编花指令技巧作者:逆流风(发表于《黑客X档案》07.07,转载注明出处)相信很多朋友都做过木马免杀,早期的免杀都是加壳和改特征码,现在免杀技术已经发展到花指令免杀,改壳之类的,而这些需要一定的汇编知识,但是汇编却不是一块容易啃的骨头,所以我写了这篇菜鸟版的免杀汇编教程,帮助小菜们快速入门,掌握免杀必备的汇编知识,改花指令,改特征码的技巧和编写自己的花指令。
一、免杀必备的汇编知识push 压栈,栈是一种数据结构,记住四个字:先进后出。
压栈就是把数据放如栈中,从栈顶放如,出栈的时候也是从栈顶取出,所以会有先进后出的特点!先进后出我们可以这样理解,例如:一个乒乓球筒,我们放入乒乓球,然后取出乒乓球,取出的都是就后放进的球。
就如我们放入球的顺序是球1、2、3、4,取出的顺序是球4、3、2、1。
pop 出栈,与push相对应。
mov a,b 把b的值送给a,把它看作编程中的赋值语句就是b赋值给a,这时a的值就是b了。
nop 无作用,就是什么也没做。
retn 从堆栈取得返回地址并跳到该地址执行。
下面是一些算术运算指令:ADD 加法sub 减法inc 加1dec 减1最后是跳转指令:jmp 无条件跳je 或jz 若相等则跳jne或jnz 若不相等则跳jb 若小于则跳jl 若小于则跳ja 若大于则跳jg 若大于则跳jle 若小于等于则跳jge 若大于等于则跳这些就是我们需要掌握的,怎么样不多吧,一些指令可能看不明白,看了后面的就会清楚了。
对了,忘了讲寄存器了,寄存器是中央处理器内的其中组成部份。
寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。
我们需要了解的是8个通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP二、特征码和花指令的修改特征码我就不多说了,大家都知道的,现在杀毒软件查杀都用特征码查杀,改了木马的特征码,杀毒软件就查不出我们的木马,这样就达到免杀的效果。
详解常用的木马隐身术武林安全网-电脑资料一、对木马使用花指令花指令就是指程序中包括了跳转指令及一些无用的指令在内的汇编指令段,有加区加花和去头加花两种,通常是用来改变程序的入口点或打乱整个程序的顺序,。
而一些杀毒软件在进行木马查杀工作时,都是按从程序的开头到结尾的顺序进行检测的,以此来找到与病毒库中某一特征码相似的特征。
甚至一些杀毒软件就是以程序的入口点作为特征码的。
因此,如果木马的程序顺序被打乱,或者程序的入口点被修改,那么,杀毒软件也就很难检测出它来,于是就达到了隐身的目的。
能完成这些工作的,就是在木马程序中使用花指令。
要在木马程序中使用花指令,可以有两种方式,一种是使用互联网上现成的,另一种是攻击者自己编写或者使用花指令生成软件。
由于互联网上现成的花指令同样会被杀毒软件厂商所得到,因此不会有什么好的保护效果。
对于有一定汇编技术的攻击者来说,就会使用自己编写花指令的方式,还可以使用一些花指令生成软件,如超级加花器和花蝴蝶等。
正是由于给木马添加不易被检测到的花指令需要高超的编程技术,也就很少有普通的攻击者使用这种方式,至少在没有陌生的花指令生成软件出现之前,是不太喜欢使用它的。
并且,由于对木马使用花指令也只是对其可执行文件本身有效,当其加载至内存后,这种隐身方式将失去作用。
因此,使用具有内存查杀功能的杀毒软件,就能够非常容易地检测到只使用这种隐身方式的木马病毒的。
在当前具有内存查杀功能的安全软件之中,查杀花指令保护木马比较好的就是EWIDO了。
也可以使用Ollydbg程序先将木马加入到内存中后再查杀。
同时,还可以使用像“花指令清除器”一类的花指令检测软件,来识别和除去花指令。
二、终止安全软件进程现在,几乎所有的木马都在使用一种十分有效的、躲避安全检测软件的方法,就是终止系统中所有安全软件的进程,从而达到了不会被查杀的目的。
而要实现这种功能,只要木马能够枚举系统中的所有正在运行的进程,然后从中找到匹配的安全软件进程名,通过发送一个终止进程的Windows消息给它,就可以结束这些正在运行的安全软件,电脑资料《详解常用的木马隐身术武林安全网》(https://www.)。
免杀的原理大全一、工具mycll:特征码定位PEID:查壳工具PEditor:入口点修改工具加花c32asmollybgoc:文件地址到内存地址的换算resscope:资源编辑zeroadd:加区段的木马采衣:加花maskpe,vmprotect:加密upx,aspack北斗壳:压缩免疫007:免疫器二、效果分析1、加密:vmprotectv1.21和MASKPE2.0(对瑞星有特效),比较容易过瑞星表面,不能过卡巴压缩:北斗,UPX:主要是减少体积加花:对卡巴有特效,通用性比较好2、北斗+VMpro,但是北斗+maskpe出错!无壳木马可以先加花3、无壳木马直接用maskPE22.0可过瑞星表面但是过不了卡巴。
4、无壳木马加一道花指令后再用VMPRO1.21加密可直接过卡巴但是可能无法过瑞星表面5、经过免杀处理,过几种杀毒软件,加压缩壳后仍免杀过他们,但是北斗除外,棉纱处理国卡巴的木马北斗后可能被卡巴杀6、测试操作1)手工加花+掘北压缩,鸽子先脱壳,在用OD在零区域添加指令(根据字节编写):先找原入口点,零区域,记录其地址(新入口点),指令push eax pop eax add esp 1 inc esp push 004A1E48 retn保存。
用PE修改入口点。
能过卡巴,过不了瑞星。
用掘北(对瑞星表面有特效)2)工具加花(花蝴蝶三号)+VMPRO+UPX。
**器三、手工加花方法1、直接:OD,记录入口点;找零区域,复制地址(新入口);写指令:push 0 nop add esp 2inc esp inc esp push exp pop esp push原入口点retn改入口点(新)(lordpe);可以把这段代码保存为二进制以后方便用。
2、去头:复制头,并去掉,填加到空白区域(新地址);再填加花指令。
3、加区:zeroadd加区段,大小一般100左右;OD打开文件,用ALT+M打开内存景象,复制区段入口地址和原程序入口,到区段加花,程序入口地址不变;lordpe 修改入口为区段的入口。
免杀木马的制作与防范作者:金良磊来源:《电脑知识与技术》2008年第01期木马相信很多人都知道,而木马的确比常规病毒更狠,监控你的操作,吞噬你的隐私,破坏你的数据。
有人要问,为什么我们的计算机安装了最新的杀毒软件,每天进行各种补丁的更新升级,还有防火墙的时时保护,为什么还会中木马呢?那是因为,有一种木马叫免杀。
一、什么是免杀?免杀是个相对词,针对目前的技术而言,多数木马都不能避免会被杀毒软件监控到并杀掉的危险,于是木马的实用性就低很多。
为了能避开杀毒软件的识别,黑客们开始从木马下手,通过各种手段“重新包装”木马,让它在杀毒软件的眼皮底下蒙混过关,这就是所谓的免杀。
二、制作免杀木马下面我们来看看黑客们是通过何种方法制作完成免杀木马的:我们首先制作一个普通的灰鸽子木马服务端取名mmsetup.exe,然后登录/zh-cn/网站把mmsetup.exe灰鸽子木马服务端上传过去,通过多引擎系统中扫描,你可以发现,绝大多数的杀毒引擎都能够识别出该木马程序,木马成功率只有10%简直可以忽略了,木马也就没意义了!(如图1)同时,针对这个mmsetup.exe我们对它进行免杀设置,一般常用的免杀方法为加密代码、花指令、加壳、修改程序入口以及手工DIY PE,至于纯手工操作并不推荐,因为这种方法制作出的程序效果虽好,但太过复杂,需要很强的汇编语言基础,并对Windows内核有一定认识。
1、代码修改法MaskPE内含多种信息模块,可以方便的修改程序指令,打乱源代码,针对利用代码识别病毒的安全软件很有效果。
下载Maskpe2.0运行起来,点击“LoadFile”按钮,通过路径选择桌面上的mmsetup.exe木马,然后在“Select Information”项里选择“PE Information”项,接着点击“Make File”在新生成的木马名字里填上“mmsetup1.exe”,最后单击“保存”按钮完成木马修改。
免杀木马的方法分多种1入口点加1能达到免杀一定效果.2变化入口地址能过一些杀软的免杀3加花指令能使木马免杀4加壳或加伪装壳免杀.5打乱壳的头文件免杀.6修改文件特征码免杀.7跳转修改8字串大小转换9重建输入表等以上都是网络上流行的免杀方法入口点加1 比如我们的入口点为:00014920 我们可以在他0上加1变为00014921 变化入口地址可以使用跳转的方式来改变入口地址:JMP指令将无条件地控制程序转移到目的地址去执行.加花免杀:找段空白处例如noppush ebpnopmov ebp,espnopsub esp,3sub esp,-3mov eax,原入口点push eaxret花是可以自己修改只要掌握花指令堆栈的平衡就可以了加壳或加修改壳免杀:多重加壳或者加冷门壳可以达到免杀效果(很朋友人朋友都喜欢加壳免杀)假如我们壳被查杀了怎么办?我们可以加壳后然后修改壳的PE或者打乱壳的PE头达到免杀(不过稍微出错会导致不上线)修改特征码:用MYCCL工具定位导入文件分块个数一般100-200 开始位置E0 修改为400 有些朋友问我怎么定位不了,如果正向定位不出特征码我们可以反向定位下当定位出来特征码后我们判断不出是真伪时可以填充90或者00看看如果90或者00被杀就证明定位错误。
那就重新定位(现在许多杀软具有干扰特征定位功能了)跳转随便找空段然后NOP JMP等进行跳转字串大小转换A=a b=B重建输入表现在各大站都有工具傻瓜式操作(非常简单)时代在进步---杀软也在进步-----而我们不要跟着别人屁股后门,大胆尝试新方法。
C32常见机器码修改方法菜鸟们一定要掌握74=>75 74=>90 74=>EB75=>74 75=>90 75=>EB0F=85=0F=84(一些地方可以修改)免杀中一些指令必须掌握的(建议大家下载个汇编辅助工具免杀时很实用)破坏指针(过nod32的常见方法本人不推荐有时后破坏了和跳转用多了一个道理会导致木马不稳定)修改函数(这个对基本基础要求很高,建议新手先学习修改特征码等在学习这)加区段(常用方法比如找不到地方写花指令,我们就可以加区段)重建PE(如果特征码较多,重建PE可以减少木马的特征码)加密(涉及到算术,不过现在加密的工具比较多,也是傻瓜式的操作)左右移位(当杀软杀到木马的字串时,我们可以利用左右移位来躲开杀软)过专杀很有用修旁免杀(当一些杀软杀到重要的特征码修改后会缺失一些功能这时我们可以修改它相近的邻居也可以达到免杀的效果)指令替换(替换法就是同等指令或者使用功能相同的代码之间的替换.就像1X1=1而1除1=1他们的结果都是一样的,在程序里这种我们可以相互替换,不会影响程序的运行(汇编辅助工具可以查询)源码免杀(前提必须要有编程基础)过360安全卫士方法360查恶意软件是查找木马的字串(修改字串简单过360恶意软件)360木马查杀(也上恶意软件是一个思路)360提示和保险箱提示这是许多朋友比较关注的)主流过法有2种:第一:捆绑模拟点击程序第二:暴力K掉360就OK了360云查杀也是大家比较关注的让你的马的MD5值和一些安全类特征库相似就过了。
如何给木马加花加壳免杀如何给木马加花加壳免杀在商业的战场上,竞争对手企业高层管理人员的数据往往记载着攸关企业生死的机密,为了得到这些东西,就需要用一些非常的手段。
黑客K为了达到这个目的,精心挑选了免杀木马,准备大干一场……上期,黑客K成功地入侵了雇主对手UU 公司数据服务器,得到了一些机密文档,其中就有该公司的内部通讯录,新的挑战接踵而来……黑客K浏览着从UU公司数据服务器中下载回来的文件,挑选有价值的资料。
他有些失望,毕竟这些资料是不能够让老板杜金满意的,他需要拿到对老板更加有诱惑力的筹码,只有这样才可以拿到更多的报酬。
黑客K很需要这笔钱让父母过上好日子,有汽车、有洋房,让他们知道自己老呆在电脑前不是不务正业。
然而在他拿到UU公司真正有价值的文件前,这一切仅仅停留在他的幻想中。
突然他发现了一份详细的公司高管联系方式,详细到了每个人的家庭电话和家庭住址都有,甚至有些还标明了其家属的联系方式。
他在电脑中细细翻看着这份名单,思索着下一步的计划:“黑掉”名单中那个叫做李飞的高管,李飞电脑中极有可能保存着老板杜金需要的策划书。
因为李飞的电脑在UU公司的内网中,要入侵他的电脑最好的办法是用木马,其他的方法难度较高。
在正式入侵前,先要准备好木马,并确保木马能逃过李飞电脑中杀毒软件的查杀。
黑客K迅速整理着自己的思路,木马运行的第一时间杀毒软件会根据自己的病毒库对木马进行特征码检查,它会检测木马释放出的每一个文件。
因此免杀思路在他脑海中清晰地整理出来,首先将木马服务端所有文件都释放出来,然后进行免杀处理,让杀毒软件无法从特征库中识别出它们,最后再将它们合并即可。
释放“潘多拉盒子”里的文件经过慎重考虑和选择,黑客K选择了黑洞木马,并不是因为它的名气大,而是因为这款木马采用SSDT恢复技术,可以顺利绕过具有主动防御功能的杀毒软件,所以他选择了它。
小知识:SSDT是System Service Dispatch Table的简称,意思是系统服务调度表。
木马精华免杀教程教程来自【暗黑网络】暗黑网络技术公会让更多的朋友了解黑客-YY496342本公会采用YY方式是让您更加方便的交流和学习,本公会,免费赠送工具,教程,等一切免费,大量招收导师如果觉得你行那就来试试吧YY496342本公会+此文档只是让大家多一点防范的意识请勿用于非法第一部分:对国内外杀毒软件分析在讲特征码前,先要分析国内外著名杀毒软件的查杀特点。
大家在使用木马过程都会发现,内存查杀,一般都指得被瑞星的内存查杀。
瑞星的内存查杀功能是同类杀毒软件中最强的一款杀毒软件。
像强悍的卡巴,金山,等等它们的内存查杀意义不大,会制作免杀木马的人都知道,像这类杀毒软件,只要文件免杀,内存也就免杀了.还有江民也有内存查杀功能,但内存查杀功能比较弱.只针对影响力非常大的病毒程序.一般的黑客软件都没有提取内存特征码.第二部分:木马免杀的对策一.要使一个木马免杀,首先要准备一个不加壳的木马,这点非常重要,否则下面的免杀操作就不能进行下去。
二.然后我们要木马的内存免杀,从上面分析可以看出,目前的内存查杀,只有瑞星最强,其它杀毒软件内存查杀现在还不起作用所以我们只针对瑞星的内存查杀,要进行内存特征码的定位和修改,才能达到内存免杀。
二.对符其它的杀毒软件,比如江民,金山,诺顿,卡巴.我们可以采用下面的方法,或这些方面的组合使用.1>.入口点加1免杀法.2>.变化入口地址免杀法3>.加花指令法免杀法4>.加壳或加伪装壳免杀法.5>.打乱壳的头文件免杀法.6>.修改文件特征码免杀法.第三部分:免杀技术实例演示部分一.入口点加1免杀法:(NC)1.用到工具:PEditor2.特点:非常简单实用,但有时还会被卡巴查杀.3.操作要点:用PEditor打开无壳木马程序,把原入口点加1即可.二.变化入口地址免杀法:(NC)1.用到工具:OllyDbg,PEditor2.特点:操作也比较容易,而且免杀效果比入口点加1点要佳.3.操作要点:用OD载入无壳的木马程序,把入口点的前二句移到零区域去执行,然后又跳回到入口点的下面第三句继续执行.最后用PEditor把入口点改成零区域的地址.三.加花指令法免杀法:(Sniff)1.用到工具:OllyDbg,PEditor2.特点:免杀通用性非常好,加了花指令后,就基本达到大量杀毒软件的免杀.3.操作要点:用OD打开无壳的木马程序,找到零区域,把我们准备好的花指令填进去填好后又跳回到入口点,保存好后,再用PEditor把入口点改成零区域处填入花指令的着地址.四.加壳或加伪装壳免杀法:(findpass)1.用到工具:一些冷门壳,或加伪装壳的工具,比如木马彩衣等.2.特点:操作简单化,但免杀的时间不长,可能很快被杀,也很难躲过卡巴的追杀.3.操作要点:为了达到更好的免杀效果可采用多重加壳,或加了壳后在加伪装壳的免杀效果更佳.五.打乱壳的头文件免杀法:(nc)1.用到工具:秘密行动,UPX加壳工具.2.特点:操作也是傻瓜化,免杀效果也正当不错,特别对卡巴的免杀效果非常好.3.操作要点:首先一定要把没加过壳的木马程序用UPX加层壳,然后用秘密行动这款工具中的SCramble功能进行把UPX壳的头文件打乱,从而达到免杀效果.六.修改文件特征码免杀法:1.用到工具:特征码定位器,OllyDbg2.特点:操作较复杂,要定位修改一系列过程,而且只针对每种杀毒软件的免杀,要达到多种杀毒软件的免杀,必需修改各种杀毒软件的特征码.但免杀效果好.3.操作要点:对某种杀毒软件的特征码的定位到修改一系列慢长过程.第四部分:快速定位与修改瑞星内存特征码一.瑞星内存特征码特点:由于技术原因,目前瑞星的内存特征码在90%以上把字符串作为病毒特征码,这样对我们的定位和修改带来了方便.二定位与修改要点:1>.首先用特征码定位器大致定位出瑞星内存特征码位置2>.然后用UE打开,找到这个大致位置,看看,哪些方面对应的是字符串,用0替换后再用内存查杀进行查杀.直到找到内存特征码后,只要把字符串的大小写互换就能达到内存免杀效果.第五部分:木马免杀综合方案修改内存特征码--->1>入口点加1免杀法---> 1>加压缩壳--->1>再加壳或多重加壳2>变化入口地址免杀法 2>加生僻壳 2>加壳的伪装.3>加花指令法免杀法 3>打乱壳的头文件4>修改文件特征码免杀法注:这个方案可以任意组合各种不同的免杀方案.并达到各种不同的免杀效果.第六部分:免杀方案实例演示部分1.完全免杀方案一:(灰鸽子VIP2.0)内存特征码修改+ 加UPX壳+ 秘密行动工具打乱UPX壳的头文件.2.完全免杀方案二:(findpass)内存特征码修改+ 加压缩壳+ 加壳的伪装3.完全免杀方案三:内存特征码修改+ 修改各种杀毒软件的文件特征码+ 加压缩壳4.完全免杀方案四:内存特征码修改+ 加花指令+ 加压缩壳5.完全变态免杀方案五:内存特征码修改+ 加花指令+ 入口点加1 + 加压缩壳UPX + 打乱壳的头文件还有其它免杀方案可根据第五部分任意组合.暗黑网络YY496342。
花指令相信做过免杀的朋友都知道花指令吧。
加花指令是一种不错的文件免杀方法,而网上公布的花指令和花指令添加器因为里边的花指令被公布了,所以免杀效果不好。
有点汇编基础的人就写自己的花指令,但写花指令的过程比较烦,所以我萌生了写一个花指令生成器的想法,首创哦^_^一、写花指令生成器必备知识1、花指令原理花指令是程序中的无用代码,程序多它没影响,少了它也能正常运行。
加花指令后,杀毒软件对木马静态反汇编时,木马的代码就不会正常显示出来,加大杀毒软件的查杀难度。
2、如何写花指令下面我们先看看一段花指令,分析理解它的原理:PUSH EBPMOV EBP,ESPpush edxpop edxinc ecxdec ecxadd esp,21add esp,-21add esp,10sub esp,10JMP 附近空地址随便乱跳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是把通用寄存器EDX弹出堆栈,这两句和起来就相当于什么也没做。
接下来的inc ecx,ecx用来保存计数值,也是寄存器,INC是加1;下面的dec ecx中的dec是减1,加1减1相抵消,又是什么也没做。
add esp,21这是寄存器esp加21,add是加上,下面一句ad d esp,-21是寄存器esp加-21,小学知识,+21+(-21)=0,还是什么也没做。
再下来add esp,10寄存器es p加21,sub esp,10寄存器esp减10,sub是减去。
方法一:修改字符串大小写法1.修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.2.适用范围:特征码所对应的内容必需是字符串,否则不能成功.方法二:直接修改特征码的十六进制法1.修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制.2.适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能否正常使用.方法三:指令顺序调换法1.修改方法:把具有特征码的代码顺序互换一下.2.适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行。
方法四:通用跳转法1.修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.2.适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.方法五:等价替换法1.修改方法:把特征码所对应的汇编指令命令中替换成功能类似的指令.2.适用范围:特征码中必需有可以替换的汇编指令.替换后指令功能要不变比如JN,JNE 换成JMP,这里要对汇编要比较熟悉,读懂指令后可以替换功能相同的指令。
也可以去查8080汇编手册[计算机专栏里有]实战特怔码免杀第一步:首先用内存定位法来准确定位瑞星内存特征码的具体位置第一阶段:自动参数中,生成文件间隔秒数设为4,最小替换字节数设为100字节。
(主要用于大体定位内存特征码)第二阶段:自动参数中,生成文件间隔秒数设为4.最小替换字节数设为4字节。
(主要用于准确定位内存特征码)第二步:修改特征码用OD打开文件,找到特怔码所在位置,并且判断适合用那种方法修改,如果对方法不太熟悉,并且特怔码不止一处,那就需要你改一处就保存并且在虚拟机里试验能否正常运行[虚拟机可是做免杀的必备工具,强烈建议你安装,因为你不可能就在自己的机器上运行木马吧?在说也不可能在你机器上同时安装N种杀软,那你机器不慢死,更重要还可以用来试验别人提供的软件有没有木马]木马免杀技术之独门绝技绝技一:快速搞定瑞星文件查杀操作步骤:第一步:用OD载入,来到程序的入口点。
木马的加花指令
花指令:就是一段没有实际意义的、不影响程序正常运行的一段代码。
它的作用就是加大杀毒软件查杀病毒的难度。
(1)按照前面所讲述的方法配置一个不加壳的木马程序。
(2)用OD载入这个木马程序,如图1所示,同时记下入口点的内存地址。
图1:OD的程序界面
(3)向下拉滚动条,找到零区域(也就是可以插入代码的都是0的空白地方)。
并记下零区域的起始内存地址。
(4)从这个零区域的起始地址开始一句一句地写入我们准备好的花指令代码。
(5)花指令写完后,在花指令的结束位置加一句:JMP 刚才OD载入时的入口点内存地址。
(6)保存修改结果后,最后用PEditor这款工具打开这个改过后的木马程序。
如图2所示,在入口点处把原来的入口地址改成刚才记下的零区域的起始内存地址,并按应用更改,使更改生效。
图2:使用PEditor更改入口点
加花指令免杀技术的优缺点:
优点:通用性非常不错,一般一个木马程序加入花指令后,就可以躲避大部分的杀毒软件,不像改特征码,只能躲过某一种杀毒软件。
缺点:这种方法还是不能过具有内存查杀的杀毒软件,比如瑞星内存查杀等。
另外目前还有几款软件可以自动帮你加花,比如木马彩衣进行加花,如图3所示。
图3:利用“木马彩衣”加花
点击“浏览”选择需要加花的木马程序,选择一种加花方法,然后点击“穿上”,程序就被加入花指令了,也就是会让木马穿上一件彩衣伪装了。
木马免杀之汇编花指令技巧
作者:逆流风
(发表于《黑客X档案》07.07,转载注明出处)
相信很多朋友都做过木马免杀,早期的免杀都是加壳和改特征码,现在免杀技术已经发展到花指令免杀,改壳之类的,而这些需要一定的汇编知识,但是汇编却不是一块容易啃的骨头,所以我写了这篇菜鸟版的免杀汇编教程,帮助小菜们快速入门,掌握免杀必备的汇编知识,改花指令,改特征码的技巧和编写自己的花指令。
一、免杀必备的汇编知识
push 压栈,栈是一种数据结构,记住四个字:先进后出。
压栈就是把数据放如栈中,从栈顶放如,出栈的时候也是从栈顶取出,所以会有先进后出的特点!先进后出我们可以这样理解,例如:一个乒乓球筒,我们放入乒乓球,然后取出乒乓球,取出的都是就后放进的球。
就如我们放入球的顺序是球1、2、3、4,取出的顺序是球4、3、2、1。
pop 出栈,与push相对应。
mov a,b 把b的值送给a,把它看作编程中的赋值语句就是b赋值给a,这时a的值就是b了。
nop 无作用,就是什么也没做。
retn 从堆栈取得返回地址并跳到该地址执行。
下面是一些算术运算指令:
ADD 加法
sub 减法
inc 加1
dec 减1
最后是跳转指令:
jmp 无条件跳
je 或jz 若相等则跳
jne或jnz 若不相等则跳
jb 若小于则跳
jl 若小于则跳
ja 若大于则跳
jg 若大于则跳
jle 若小于等于则跳
jge 若大于等于则跳
这些就是我们需要掌握的,怎么样不多吧,一些指令可能看不明白,看了后面的就会清楚了。
对了,忘了讲寄存器了,寄存器是中央处理器内的其中组成部份。
寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。
我们需要了解的是8个通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP
二、特征码和花指令的修改
特征码我就不多说了,大家都知道的,现在杀毒软件查杀都用特征码查杀,改了木马的特征码,杀毒软件就查不出我们的木马,这样就达到免杀的效果。
而花指令是程序中的无用代码,程序多它没影响,少了它也能正常运行。
加花指令后,杀毒软件对木马静态反汇编使,木马的代码就不会正常显示出来,加大杀毒软件的查杀难度。
花指令的原理是堆栈平衡。
前面介绍push说了,堆栈平衡可以这样理解,有进有出,不管花指令怎么写,我们要达到的目的是加花后,堆栈与未加之前一样。
网上的花指令因为是公布出来的,所以免杀周期不长,一般公布出来不久就会被杀毒软件查杀,但是我们只要简简单单的修改一两句就可以达到免杀了。
下面我们来看看5种修改方法。
(也适用于特征码修改)
我们先看看木马彩衣(金色鱼锦衣花指令
1、push ebp
2、mov ebp,esp
3、add esp,-0C
4、add esp,0C
5、mov eax,原入口
6、push eax
7、retn
1、2、在大部分程序开头可以经常看到。
push ebp是将寄存器ebp压入堆栈,mov ebp,esp是将寄存器esp的值送给寄存器ebp。
3、4、使用了add指令,add esp,-0C是寄存器esp加上-0C,add esp,0C是寄存器esp加上0C,3、4、加起来就是什么也没做,达到堆栈平衡。
5、6、7、完成了跳转到入口点的功能,我们一句句来看看mov eax,原入口,将入口点送入寄存器eax,push eax将寄存器eax压入堆栈,retn我们知道是从堆栈取得返回地址并跳到该地址执行。
这样就回到入口点了。
我们看看实例,以木马彩衣免杀为例,先侦壳,用peid载入,显示Microsoft Visual Basic 5.0 / 6.0,(如图1)很好,免去了脱壳的麻烦,复制木马彩衣后再粘贴,得到复件木马彩衣.exe,我们用木马彩衣对复件木马彩衣.exe加花,加金色鱼锦衣,(如图2)然后用Ollydbg.exe载入,我们就可以看到看到金色鱼锦衣的花指令了。
(如图3)用卡巴扫描,被卡巴认出来了。
(如图4)这是因为金色鱼锦衣公布比较久,用的人多了,对杀毒软件就无效了。
1、替换法
我们用替换法来修改金色鱼锦衣,修改结果如下:
1、push ebp
2、mov ebp,esp
3、add esp,1
4、add esp,-1
5、mov eax,原入口
6、push eax
7、retn
将原来3、4、句add esp,-0C和add esp,0C改成add esp,1和add esp,-1这两句也能达到堆栈平衡,(如图5)右键选中add esp,-0C,点击汇编,将add esp,-0C改成add esp,1,将add esp,0C改成add esp,-1。
选中修改部分,右键单击→复制到可执行文件→选择部分,弹出窗口,右键保存文件。
这里我保存成“替换法.exe”用卡巴查杀,免杀了。
(如图6)
2、移位法
1、push ebp
2、mov ebp,esp
3、nop
4、nop
5、add esp,-0C
6、add esp,0C
7、mov eax,原入口
8、push eax
9、retn
将原来的3、4、5、6、7、几个语句向下移动2行,修改后保存为“移位
法.exe”。
3、添加法
1、push ebp
2、mov ebp,esp
3、push edx
4、pop edx
5、add esp,-0C
6、add esp,0C
7、mov eax,原入口
8、push eax
9、retn
在金色鱼锦衣中加入push edx和pop edx,这两句是将寄存器edx压入和弹出堆栈,一样达到堆栈平衡。
修改后保存成“添加法.exe”。
4、去除法
1、push ebp
2、mov ebp,esp
3、mov eax,原入口
4、push eax
5、retn
删除add esp,-0C和add esp,0C,修改后保存成“去除法.exe”。
5、跳转法
push ebp
mov ebp,esp
jmp 跳出到add esp,-0C的地址
mov eax,复件_木?0040109C
push eax
retn
add esp,-0C
add esp,0C
jmp 跳回mov eax,复件_木?0040109C的地址
这个可能比较复杂,大家看看截图(图7),修改后保存为“跳转法.exe”。
我们用卡巴试试修改后的效果,(如图8)看看,只有原来的木马彩衣,加了金色鱼锦衣的和去除法的可以查到。
去除法是因为金色鱼锦衣的代码比较短,如果花指令长点,效果会比较好。
几种修改方法结合使用效果更好,当然,一样可修改特征码,相对跳转法在修改特征码中使用比较多。
三、编写自己的花指令
通过上面的学习我们可以知道花指令大概结构,一般开始是push ebp和mov ebp,esp,接下来就是一些能保持堆栈平衡的指令,完了就是跳回入口点了。
我罗列出一些能保持堆栈平衡的代码
push ebp 把基址指针寄存器压入堆栈
pop ebp 把基址指针寄存器弹出堆栈
push eax 把数据寄存器压入堆栈
pop eax 把数据寄存器弹出堆栈
nop 无作用,就是什么也没做
mov eax,eax 将eax送入eax,等于什么也没做
sub eax,1
add eax,1 寄存器eax+1和寄存器eax-1,一样等于什么也没做
sub eax,2
dec eax
dec eax 一样很简单的加减运算,先是寄存器eax+2,紧接着连续用dec指令处理寄存器eax两次,就是-1再-1,达到堆栈平衡。
很简单,大家参考后可以自己写出N多这样的指令。
写完这些就可以写跳转语句了。
JMP 入口点这时最简单的跳转了,无条件跳回入口点,最简单当然效果也最差了
mov eax,入口点
push eax
retn 很眼熟吧,金色鱼锦衣的跳转,解释过,不多说了。
mov eax,入口点
jmp eax 和金色鱼锦衣的跳转的原理差不多吧,入口点压入寄存器eax,再跳到寄存器eax,就是跳到入口点了。
je 入口点
jne 入口点等于则跳和不等于则跳,合起来就是绝对跳咯,像这样的条件跳转语句很多,大家可参考前面跳转指令的知识自己写。
上面的指令随便结合相信大家可以写出属于自己的花指令了,这样我这篇文章的目的也就达到了。
花指令添加的方法大家可以参照去年第9期的主题乐园。