CTF 竞赛入门指南(CTF All In One)学习(五)

本文是CTF竞赛入门系列的第五篇,主要讲解X64汇编的基础知识,包括寄存器的扩展,64位寄存器如rax的介绍,以及寻址模式的示例。此外,还提及了ARM汇编的基本概念。通过学习,读者将对这两种汇编语言有初步理解。
摘要由CSDN通过智能技术生成


X64汇编基础

寄存器

x64 extends x86’s 8 general-purpose registers to be 64-bit, and adds 8 new 64-bit registers. The 64-bit registers have names beginning with “r”, so for example the 64-bit extension of eax is called rax. The new registers are named r8 through r15.

寻址模式

       例如:

    movl $1, 0x604892        ;直接写入, 内存地址是一个常数
    movl $1, (%rax)          ;间接写入, 内存地址存在寄存器 %rax 中
    movl $1, -24(%rbp)       ;使用偏移量的间接写入
                             ;公式 : (address = base %rbp + displacement -24)
    movl $1, 8(%rsp, %rdi, 4) ;间接写入, 用到了偏移量和按比例放大的索引 ( scaled-index )
                             ;公式 : (address = base %rsp + displ 8 + index %rdi * scale 4)
    movl $1, (%rax, %rcx, 8) ;特殊情况, 用到了按比例放大的索引 ( scaled-index ), 假设偏移量 ( displacement ) 为 0
    movl $1, 0x8(, %rdx, 4)  ;特殊情况, 用到了按比例放大的索引 ( scaled-index ), 假设基数 ( base ) 为 0
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值