软件工具 SofTool.CN 本次搜索耗时 0.285 秒,为您找到 23 个相关结果.
  • 01_基础介绍

    写在前面 为什么是ARM? ARM VS. INTEL 写ARM汇编 汇编语言本质 拓展阅读 写在前面 欢迎来到ARM汇编基础教程,这套教程是为了让你可以在ARM架构下进行漏洞利用打基础的。在我们能开始写ARM的shellcode以及构建ROP链之前,我们需要先学习相关的ARM汇编基础知识。 这些基础知识包括:Part 1:ARM汇编介绍...
  • 04_内存相关指令

    基础样例代码 第一种偏移形式:立即数作偏移 第二种偏移形式:寄存器作偏移 第三种偏移形式:寄存器缩放值作偏移 小结: 立即数作为偏移 寄存器作为偏移 寄存器缩放值作为偏移 地址模式:用作偏移 地址模式:前向索引 地址模式:后向索引 关于PC相对取址的LDR指令 在ARM中使用立即数的规律 ARM使用加载-存储模式控制对内存的访问,...
  • 02_数据类型

    ARM汇编数据类型基础 字节序 ARM寄存器 当前程序状态寄存器(CPSR) 这是ARM汇编速成系列的第二部分,将学习到ARM汇编基础,数据类型及寄存器。 ARM汇编数据类型基础 与高级语言类似,ARM也支持操作不同的数据类型。 字 / 半字 / 字节 被加载或者存储的数据类型可以是无符号(有符号)的字(words,四字节),半字...
  • 06_条件执行和分支

    条件执行 Thumb模式中的条件执行 分支指令 B/BX/BLX 条件分支指令 条件执行 在之前讨论CPSR寄存器那部分时,我们大概提了一下条件执行这个词。条件执行用来控制程序执行跳转,或者满足条件下的特定指令的执行。相关条件在CPSR寄存器中描述(CPSR格式,请移步: https://www.softool.cn/read/arm_as...
  • 07_栈与函数

    函数 总结一下: 在这部分我们将研究一篇独特的内存区域叫做栈,讲解栈的目的以及相关操作。除此之外,我们还会研究ARM架构中函数的调用约定。 栈 一般来说,栈是一片在程序/进程中的内存区域。这部分内存是在进程创建的时候被创建的。我们利用栈来存储一些临时数据比如说函数的局部变量,环境变量等。在之前的文章中,我们讲了操作栈的相关指令PUSH和POP。 ...
  • Go 开发工具

    3770 2020-12-26 《Go 语言》
    LiteIDE 作者:七叶 英文名:visualfc 官网:http://liteide.org/cn/ 发行版下载地址:https://sourceforge.net/projects/liteide/files 优势: 解压即可使用 LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。 支持的操作系统: Windows...
  • 05_连续加载及存储

    连续加载/存储 PUSH和POP 连续加载/存储 有时连续加载(存储)会显得更加高效。因为我们可以使用LDM(load multiple)以及STM(store multiple)。这些指令基于起始地址的不同,有不同的形式。下面是我们会在这一节用到的相关代码。在下文中会详细讲解。 .data array_buff: .word 0x000000...
  • 1. Introduction

    INTRODUCTION TO ARM ASSEMBLY BASICS Welcome to this tutorial series on ARM assembly basics. This is the preparation for the followup tutorial series on . Before we can dive into ...
  • 编译过程

    3067 2021-01-18 《GCC 简单入门》
    预处理:头文件、宏展开 编译: 汇编:生成目标文件 链接:链接其他的程序库生成可执行文件 接下来先看gcc的常用选项: 选项名 作用 -o 产生目标(.i、.s、.o、可执行文件等) -E 只运行C预编译器 -S 告诉编译器产生汇编程序文件后停止编译,产生的汇编语言文件拓展名为.s -c 通知gcc取消...
  • 7. Stack and Functions

    STACK AND FUNCTIONS In this part we will look into a special memory region of the process called the Stack. This chapter covers Stack’s purpose and operations related to it. Addi...