【第22期】观点:IT 行业加班,到底有没有价值?

加花指令

转载 2007年10月06日 23:37:00
 

一.花指令概念:

花指令是一堆汇编指令组成,对于程序来说,是一堆废话,加不加花指令都

不影响程序的正常运行.编写的花指令要终始保持堆栈的平衡.

二.写花指令的原则:

写花指令的基本原则就是要保持堆栈的平衡.

写花指令细细品味下面一段比喻:

我们把一段花指令比喻成一道数学运算题,把汇编指令(push pop等)比喻成加减
乘除,把寄存器或数据(eax,ebx,1等)比喻成
数字(1,2,3等),那么要保持花指令堆栈的平衡,等于保持这道数学题的结果是0 .

三.解释一些指令含意

push ebp ----把基址指针寄存器压入堆栈

pop ebp ----把基址指针寄存器弹出堆栈

 

push eax ----把数据寄存器压入堆栈

pop eax ----把数据寄存器弹出堆栈


nop        -----不执行


dd esp,1-----指针寄存器加1

sub esp,1-----指针寄存器减1


inc ecx    -----计数器加1

dec ecx    -----计数器减1


sub esp,1 ----指针寄存器加1

sub esp,-1----指针寄存器加-1

 

jmp 入口地址    ------跳到程序入口地址

与它效果一样的还有(以下三个):

push 入口地址

retn


jb    入口地址

jnb 入口地址


mov eax,入口地址

jmp eax

 

 

jmp 入口地址----跳到程序入口地址

push 入口地址---把入口地址压入堆栈

retn        ------ 反回到入口地址,效果与jmp 入口地址一样.

mov eax,入口地址 ------把入口地址转送到数据寄存器中.  

jmp eax        ----- 跳到程序入口地址  

jb 入口地址

jnb 入口地址    ------效果和jmp 入口地址一样,直接跳到程序入口地址.

 

四.免杀花指令编写手册:

注:以后编写花指令,都可以参考本手册,灵活组合,快速写出自己的花指令.

*******************************************************************
push ebp

pop ebp

push eax

pop eax

push esp

pop esp

push 0

push 0

push 10    -------其中数字可以任意,注意与下面对应

push -10

nop    -----------可任意在中间添加

move edi,edi ----效果与nop一样

add esp,1    -------其中数字可以任意,注意以下面对应

add esp,-1

add esp,1    --------其中数字可以任意,注意以下面对应

sub esp,1

inc ecx

dec ecx

sub eax, -2 ----------其中数字可任意,与inc的个数对应

inc eax

inc eax

add eax -2 ----------其中数字可任意,与inc的个数对应

inc eax

inc eax

jmp 下一个jmp地址

jmp 下一个地址

push ebp

mov ebp,esp -------可做为花指令的开头句

jmp 入口地址    ------跳到程序入口地址

与它效果一样的还有(以下三个):

push 入口地址

retn

 

jb    入口地址

jnb 入口地址

 

mov eax,入口地址

jmp eax

********************************************************************

再说下个人的经验吧.

在写花指令的时候,最好先提取好成对的花指令,然后在随便打乱顺序,这样能更好的达到免杀效果,还有在最后跳转到原始入口点的时候 最好不要用 jmp 语句,以为卡巴对这个查的很严,即使你的花指令免杀了,到最后你用jmp跳转,卡巴也会把你的马马杀掉. 最好用 push 搭配 retn 来使用 .效果是一样的.

还是希望大家多实践,这样收获才大    ^^

举报

相关文章推荐

给C语言添加花指令,抵御反汇编

给C语言添加花指令,抵御反汇编   (1)未加花程序 能正确反汇编 原程序: void Function() {   Input++;   Outp...

简单的加花指令和加密MessageBox

不要调用AfxMessageBox,因为mfc只是对api的封装。反汇编后显示的还是api。例子:char m[]="你成功了!!";char n[]="恭喜!!";?  __asm {mov ebx...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

免杀花指令编写手册

一.花指令概念:  花指令是一堆汇编指令组成,对于程序来说,是一堆废话,加不加花指令都  不影响程序的正常运行.编写的花指令要终始保持堆栈的平衡.  二.写花指令的原则:  写...

VC加花指令

void flower_code() { __asm { jz label; jnz label; //相当于汇编中的db __emit 0e8h; label: mov a...

花指令的原理、常用花指令收集及花指令示例

花指令的作用是对付静态分析,以下面一段程序说明一下花指令的原理 #include #include void main() { _asm { jmp ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)