AIX PowerPC体系结构及其溢出技术学习笔记

AIX PowerPC体系结构及其溢出技术学习笔记

ID:47142035

大小:81.50 KB

页数:16页

时间:2019-08-11

AIX PowerPC体系结构及其溢出技术学习笔记_第1页
AIX PowerPC体系结构及其溢出技术学习笔记_第2页
AIX PowerPC体系结构及其溢出技术学习笔记_第3页
AIX PowerPC体系结构及其溢出技术学习笔记_第4页
AIX PowerPC体系结构及其溢出技术学习笔记_第5页
资源描述:

《AIX PowerPC体系结构及其溢出技术学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、AIXPowerPC体系结构及其溢出技术学习笔记2011年12月12日11:40 一、熟悉PowerPC体系及其精简指令集计算 PowerPC体系结构是RISC(精简指令集计算),定义了200多条指令。PowerPC之所以是RISC,原因在于大部分指令在一个单一的周期内执行,而且是定长的32位指令,通常只执行一个单一的操作(比如将内存加载到寄存器,或者将寄存器数据存储到内存)。差不多有12种指令格式,表现为5类主要的指令: 1、分支(branch)指令2、定点(fixed-point)指令3、浮点(floating-point)指令4、装载和存储指令5、处理器控制指

2、令 PowerPC的应用级寄存器分为三类:通用寄存器(general-purposeregister,GPR)、浮点寄存器(floating-pointregister[FPR]和浮点状态与控制寄存器[Floating-PointStatusandControlRegister,FPSCR])和专用寄存器(special-purposeregister,SPR)。gdb里的inforegisters能看到38个寄存器,下面主要介绍这几个常用的寄存器: 通用寄存器的用途: r0在函数开始(functionprologs)时使用。r1堆栈指针,相当于ia32架构中的es

3、p寄存器,idapro把这个寄存器反汇编标识为sp。r2内容表(toc)指针,idapro把这个寄存器反汇编标识为rtoc。系统调用时,它包含系统调用号。r3作为第一个参数和返回地址。r4-r10函数或系统调用开始的参数。r11用在指针的调用和当作一些语言的环境指针。r12它用在异常处理和glink(动态连接器)代码。r13保留作为系统线程ID。r14-r31作为本地变量,非易失性。 专用寄存器的用途: lr链接寄存器,它用来存放函数调用结束处的返回地址。ctr计数寄存器,它用来当作循环计数器,会随特定转移操作而递减。xer定点异常寄存器,存放整数运算操作的进位以及

4、溢出信息。msr机器状态寄存器,用来配置微处理器的设定。cr条件寄存器,它分成8个4位字段,cr0-cr7,它反映了某个算法操作的结果并且提供条件分支的机制。 寄存器r1、r14-r31是非易失性的,这意味着它们的值在函数调用过程保持不变。寄存器r2也算非易失性,但是只有在调用函数在调用后必须恢复它的值时才被处理。 寄存器r0、r3-r12和特殊寄存器lr、ctr、xer、fpscr是易失性的,它们的值在函数调用过程中会发生变化。此外寄存器r0、r2、r11和r12可能会被交叉模块调用改变,所以函数在调用的时候不能采用它们的值。 条件代码寄存器字段cr0、cr1、c

5、r5、cr6和cr7是易失性的。cr2、cr3和cr4是非易失性的,函数如果要改变它们必须保存并恢复这些字段。 在AIX上,svca指令(sc是PowerPC的助记符)用来表示系统调用,r2寄存器指定系统调用号,r3-r10寄存器是给该系统调用的参数。在执行系统调用指令之前有两个额外的先决条件:LR寄存器必须保存返回系统调用地址的值并且在系统调用前执行crorccr6,cr6,cr6指令。 二、学习AIXPowerPC汇编 由于对AIXPowerPC的汇编很不熟,所以借助gcc的-S来学习一下AIX的汇编。二进制的gcc可以从http://aixpdslib.sea

6、s.ucla.edu/下载到。先写一个最小的C程序: /*setuid.c**LearnAIXPowerPCassemble*/#include;intmain(){setuid(0);} 用gcc的-S选项编译一下: bash-2.04$gcc-Ssetuid.c 在当前目录得到setuid.s: .file"setuid.c".toc.csect.text[PR]gcc2_compiled.:__gnu_compiled_c:.align2.globlmain.globl.main.csectmain[DS]main:.long.main,TOC[tc0],0.

7、csect.text[PR].main:.extern__mulh.extern__mull.extern__divss.extern__divus.extern__quoss.extern__quousmflr0stw31,-4(1)stw0,8(1)stwu1,-64(1)mr31,1bl.__maincror31,31,31li3,0bl.setuidcror31,31,31L..2:lwz1,0(1)lwz0,8(1)mtlr0lwz31,-4(1)blrLT..main:.long0.byte0,0,32,97,128,1,0,1.longLT..ma

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。