16位汇编第九讲汇编指令以及逆向中的盈丰娱乐 – iBinary

                                                                        16位缀编第九讲缀编指令也颠倒击中要害盈丰娱乐

以环连结指令(以环连结指令

效能:

  以环连结指令运用cx counte自动地减去1,一种便于赚得计数以环连结的顺序结构

拿 … 来说:

mov cx,3   
loop1:    ;依等级排列
        .....
    LOOP loop1;不息的以环连结依等级排列,后来地是cx 直到它瀑布零

每回以环连结后,cx自发地缩减,直到CX == 0,还如今以环连结指令心不在焉的经用,因有很的限度局限,拿 … 来说,以环连结最适当的缩减本身,但不克不及增加的人或事物运算,因而we的所有格形式都用它。 JCC 指令,仿照以环连结指令

辅顺序指令(重大聚会的总的印象由于辅顺序指令

成绩? 是什么辅顺序

  1.辅顺序是实现详述重大聚会的顺序。

  2.当主顺序(召唤顺序)必需实现左右效能的时分,将召唤指令转变到修正的子例程f的舌前的

  三。运转万辅顺序效能时,采取 ret 将指令归还到主顺序以持续实现

是否您察觉C使假释出狱或更上级的使假释出狱,请牧座

  这确实是单独重大聚会,用于密码电文重用,愿望背诵,用以表示威胁缀编密码电文一多就会很乱,拿 … 来说,无效经管COD

拿 … 来说,ret指令,确实,它是单独均衡的堆栈,它在C使假释出狱中瀑布声调,为return了

1.最原始的

主顺序召唤辅顺序流程图

  

本文次要绍介呼叫迁移,运用RET

赚取的基音是什么

  率先看单独立法机构

jmp PROC_ADD           漏过到重大聚会实现
d_One: jmp END_EXIT   跳到顺序的终止,完毕顺序 

PROC_ADD:

重大聚会增加的人或事物
mov ax,
1
mov bx,1
add ax,bx 添加AX和BX,成果保在AX中,AX作为归还值归还
jmp d_ONE ;漏过到 在实现重大聚会后,starte指令持续实现

END_EXIT: 顺序末了的密码电文不足道
mov ax,
4c00h

int 21h

看一眼上面的密码电文找到了什么,这和we的所有格形式上面的相片相像吗?

主顺序 -> 辅顺序的增加的人或事物, 后来地 -> 漏过记起,跳到下一件商品指令持续

这是雏形。,还你想过吗,此添加最适当的赚得 + 1 了,这全然变动从而产生断层全能的。,怎么办,是否你常常这事叫呢,

前后口头禅,一向某个人叫它吗,显然不现实。

带参量迁移

上面见了单独大缺陷。,刚要不克不及使铭记参量,这还不敷。,因而we的所有格形式得想办法。,我能把参量传出去吗

看密码电文:

mov cx,1
mov dx,1
jmp PROC_ADD           漏过到重大聚会实现
d_One: jmp END_EXIT   跳到顺序的终止,完毕顺序 

PROC_ADD:             重大聚会增加的人或事物
   mov ax,cx            更反倒cx  
   mov bx,dx            更反倒DX
   add ax,bx            添加AX和BX,成果保在AX中,AX作为归还值归还
   jmp d_ONE            ;漏过到  在实现重大聚会后,starte指令持续实现

END_EXIT:             顺序末了的密码电文不足道
  mov ax,
  4c00h int 21h    

we的所有格形式见,表面暂存存储器的更改,您可以修正参量,还还要有成绩,总共有的多少不等个暂存存储器,是否we的所有格形式有10个参量呢?

拿 … 来说,CreateProcess API,它有10个前文的参量,不必撕咬是什么API,您可以参观参量。

正是10个,是否we的所有格形式心不在焉十足的暂存存储器怎么办?

三。更上级的相反的事物波段参量

  we的所有格形式执意很想的,表示不再使臻于完善we的所有格形式的必需,左右时分,可以运用堆栈,we的所有格形式可以运用堆栈来雇用数据

分开堆栈时堆栈均衡(即雇用堆栈投宿

mov cx,2
    push cx             ;压栈
    mov dx,1
    push 召唤重大聚会
    CALL PROC_ADD    
    mov dl,al
    mov ah,2h;实现显示满足
    int 21h
    jmp END_EXIT
PROC_ADD:
    mov bp,sp
    mov ax,[英国石油公司 +2]      ; 从STAC中砍掉满足,留意为什么 2
    mov bx,[英国石油公司+ 4]
    add ax,bx
    ret

嗨宜留意。,当we的所有格形式赚取的时分,为什么在重大聚会中必需 2

报账是当子例程结尾实现时,必需归还主顺序实现,因而主顺序的下一件商品指令曾经被叠加了,SO 2得名次,可以获得参量

最近的召唤ret flat stack

当顺序不期而遇,做的事实

1. 率先修正IP值,知识产权的面值, = (SS堆栈段暂存存储器) * 16 + (sp stack top)的值,

2.次货步。(SP堆栈顶部) = (SP堆栈顶部) + 2

留意到,RET只归还前番按下的RETURN ADDRES,还参量还心不在焉叠加,正是在相反的事物完毕后,归还地址的下一件商品指令会使其变平。

极小的呼叫

mov cx,1
push cx
mov bx,2
push bx
CALL PROC_ADD

PROC_ADD:
    ......
    ret

RET的效能,那执意把归还地址从堆栈中取出,后来地分派IP持续实现预示凶兆命令

还请留意,嗨心不在焉平的漏斗,we的所有格形式必需本人计划。

比方,让we的所有格形式把两个参量放在堆栈上,比方  add sp,4   让SP平促使发生

四丶盈丰娱乐

牧座上面的配密码电文

we的所有格形式见jmp使用了上面的单独八位位组,但在汇编时,左右八位位组是用MOV机具编码的。

出示的顺序集密码电文不舒服。,盈丰娱乐混乱执意很,此密码电文依然可以相当的实现

对立战略

1.是否是定态调试,这么盈丰娱乐是碎屑的(定态调试执意一步步地走)为什么,因为了确保顺序集密码电文是不舒服fre

每回密码电文运转时特许市被反缀编。

2.盈丰娱乐次要对立的是定态调试,因病毒不起效能。,最适当的参观二元系和顺序集,如今该怎么办?

we的所有格形式见了,他等比中数JMP, jmp 1八位位组,此刻,您可以编辑单独器来实现此用双手触摸、举起或握住。,把jmp改成nop(也执意说,告知cpu不要实现

如今we的所有格形式在Winhex中找到它,后来地反倒 90机具密码电文(用于NOP)

主编时,先看下马 找到01的产地,换上衣服90个nops后来地把,后来地涌现相当的的反缀编

 

后来地见盈丰娱乐去不计,左右执意最复杂的盈丰娱乐,自然,这可以经过查找jmp漏过的八位位组数来结尾。,授权代理将满足修正为nop,因而就受胎盈丰娱乐去除器

留意,嗨是最复杂的盈丰娱乐,有更复杂的,单足魔高一丈,因而心不在焉充分的盈丰娱乐去除器,到最近的,或许你必需本人辨析一下,我本人修正过。

努力赶上织物联锁  密码电文:hvjp

发表评论

电子邮件地址不会被公开。 必填项已用*标注