虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

empty

  • ARM 汇编指令

    ARM处理器有两种工作状态ARM和Thumb(Jazelle此处先不考虑)。这两种工作状态和运行模式没有任何关系。比如不论是ARM还是Thumb状态的代码都可以运行在用户模式下。这两种工作状态之间最大的差异是指令集,ARM状态的指令长度是32位的,Thumb状态的指令长度是16位的(也可能为32位)。了解如何使用Thumb工作状态对于编写ARM平台的漏洞利用是至关重要的。当我们编写ARM shellcode时,需要使用16 bit的Thumb指令代替32 bit的ARM指令,从而避免在指令中出现’\0’截断。容易引起混淆的是,不同的ARM版本,支持的Thumb指令集并不相同。在某些版本中,ARM引入了扩展的Thumb指令集(也就是Thumb-2),它支持32 bit指令以及条件执行。这在原本的Thumb指令中都是不受支持的。为了在Thumb状态下支持条件执行,“it”指令被引入。然而,可能是为了简化指令集,这个指令在后来的版本中被删除了。我认为这种设计反而增加了兼容的复杂度。不过,当然我认为没必要知道所有ARM版本的ARM/Thumb指令集变体,我建议你也不必在这上面浪费太多时间。你只需要知道目标设备的版本和该版本对Thumb指令有哪些特殊支持,然后调整你的代码就好了。ARM Infocenter可以帮助你了解各个ARM版本的具体细节

    标签: ARM 汇编指令

    上传时间: 2022-02-10

    上传用户:

  • IAR for ARM7.1建立STM32的项目工程

    一、建立基本的项目平台在建项目平台前需要做一些准备,选择一个盘建立 Platform”文件夹,在Platform"文件夹下建boot".HardWareTest"、"Project"、"Src"四个文件夹,boot"用来存放bootloader工程程序,HardWareTest"用来存放硬件自动测试工程程序,"Project"用来存放项目平台建立时生产的文件,"Src"用来存放STM32uCOSl工程的应用程序。下面开始建项目平台吧。步骤一:新建一个 IAR for ARM工程,File-> New-> Workspac创建一个新的工作空间,然后通过Project >Create New Project建立一个ARM的empty project,点击“OK"后弹出工程保存菜单,填写工程名“STM32uCOSI",然后点击“保存”,第一个工程建立完毕。步骤二:再建一个工程,通过Project > Create New Project建立一个ARM的empty project,点击“OK"后弹出工程保存菜单,填写工程名“BOOT",然后点击“保存”,第二个工程建立完毕。步骤三:建第三个工程,通过Project →> Create New Project建立一个ARM的empty project,点击“OK"后弹出工程保存菜单,填写工程名“HardWareTest",然后点击“保存",第三个工程建立完毕。

    标签: iar stm32

    上传时间: 2022-06-26

    上传用户: