相信很多朋友都做过木马免杀,早期的免杀都是加壳和改特征码,现在免杀技术已经发展到花指令免杀,改壳之类的,而这些需要一定的汇编知识,但是汇编却不是一块容易啃的骨头,所以我写了这篇菜鸟版的免杀汇编教程,帮助小菜们快速入门,掌握免杀必备的汇编知识,改花指令,改特征码的技巧和编写自己的花指令。
1]/D0c)Z(ktech.techweb.com.cn一、免杀必备的汇编知识
H!S*d-S*k:_*N;?push 压栈,栈是一种数据结构,记住四个字:先进后出。压栈就是把数据放如栈中,从栈顶放如,出栈的时候也是从栈顶取出,所以会有先进后出的特点!先进后出我们可以这样理解,例如:一个乒乓球筒,我们放入乒乓球,然后取出乒乓球,取出的都是就后放进的球。就如我们放入球的顺序是球1、2、3、4,取出的顺序是球4、3、2、1。TechWeb-技术社区2U/g r u'|3d(D"_0p'd
pop 出栈,与push相对应。程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛!E+Z,A/J1c#k(f7f2L8X6H
mov a,b 把b的值送给a,把它看作编程中的赋值语句就是b赋值给a,这时a的值就是b了。tech.techweb.com.cn0h1~)a(A6t1Y+h
nop 无作用,就是什么也没做。
(y/t%q.W5g*D!P']*k |retn 从堆栈取得返回地址并跳到该地址执行。程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛7D.G!p*H3\$[$V8I
下面是一些算术运算指令:
;M(Q(p!c9]4KADD 加法程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛5F"{#t8J7t6D!q%S3d
sub 减法
#L#H'g#](T!i,Z.Ztech.techweb.com.cninc 加1
6I;C(|,~:k"F6ztech.techweb.com.cndec 减1:R2W"c%B2A:z
最后是跳转指令:程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛)L0S)D"a,n4z"w.j:K9y
jmp 无条件跳
:^-R&T%c7sTechWeb-技术社区je 或jz 若相等则跳tech.techweb.com.cn3a2A8}'V5_5i9j
jne或jnz 若不相等则跳
*}(d*v5k5o(o!q,Y!bjb 若小于则跳1q-k#b)F5M
jl 若小于则跳(D1\$[#H*O:P
ja 若大于则跳程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛,S-j5m(](u;a
jg 若大于则跳TechWeb-技术社区,^9s+L6G7r5e"N(A;{
jle 若小于等于则跳,n)P0d#q6f
jge 若大于等于则跳
6\#y&H0x/B-o!}这些就是我们需要掌握的,怎么样不多吧,一些指令可能看不明白,看了后面的就会清楚了。对了,忘了讲寄存器了,寄存器是中央处理器内的其中组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。我们需要了解的是8个通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP
!k7f5g%Z"O"F,w%`7h程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛二、特征码和花指令的修改
*w$d:c%O&Y0y8@程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛特征码我就不多说了,大家都知道的,现在杀毒软件查杀都用特征码查杀,改了木马的特征码,杀毒软件就查不出我们的木马,这样就达到免杀的效果。而花指令是程序中的无用代码,程序多它没影响,少了它也能正常运行。加花指令后,杀毒软件对木马静态反汇编使,木马的代码就不会正常显示出来,加大杀毒软件的查杀难度。花指令的原理是堆栈平衡。前面介绍push说了,堆栈平衡可以这样理解,有进有出,不管花指令怎么写,我们要达到的目的是加花后,堆栈与未加之前一样。
*`$A3B;B Y'h5H&d网上的花指令因为是公布出来的,所以免杀周期不长,一般公布出来不久就会被杀毒软件查杀,但是我们只要简简单单的修改一两句就可以达到免杀了。下面我们来看看5种修改方法。(也适用于特征码修改)tech.techweb.com.cn9\-w-a;l*J R-Q!B4Z(H
我们先看看木马彩衣(金色鱼锦衣)花指令:g%]7P5E-T)^;n7R#a8S6p
1、push ebp3Q6C:z:}2Y:^3I9h
2、mov ebp,esp程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 u'v4^8o,Y)R'U![
3、add esp,-0C程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛8X6@#R!Z)z9D"[
4、add esp,0C
:o:e(r:E(q3q&s!w:@7o5、mov eax,原入口#P8t)u"j3G9N3z
6、push eax
2}0g,K-S7t7c%v程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛7、retn
(C+Z.u#?'k-v*P3?TechWeb-技术社区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我们知道是从堆栈取得返回地址并跳到该地址执行。这样就回到入口点了。
v7P,E.C%F0E&l#l我们看看实例,以木马彩衣免杀为例,先侦壳,用peid载入,显示Microsoft Visual Basic 5.0 / 6.0,(如图1)很好,免去了脱壳的麻烦,复制木马彩衣后再粘贴,得到复件 木马彩衣.exe,我们用木马彩衣对复件 木马彩衣.exe加花,加金色鱼锦衣,(如图2)然后用Ollydbg.exe载入,我们就可以看到看到金色鱼锦衣的花指令了。(如图3)用卡巴扫描,被卡巴认出来了。(如图4)这是因为金色鱼锦衣公布比较久,用的人多了,对杀毒软件就无效了。
c)Q.D5Q7G1I1X9|2o/M'nTechWeb-技术社区
)l9X-W/\1m
[1] [2] 下一页