Module: Rex::Arch::ARM

Defined in:
lib/rex/arch/arm.rb

Overview

ARM 32-bit

Constant Summary collapse

R0 =

Register number constants

A1 = 0
R1 =

function argument / return value

A2 = 1
R2 =

function argument

A3 = 2
R3 =

function argument

A4 = 3
R4 =

function argument

V1 = 4
R5 =

variable / callee-saved

V2 = 5
R6 =

variable / callee-saved

V3 = 6
R7 =

variable / callee-saved

V4 = 7
R8 =

variable / callee-saved

V5 = 8
R9 =

variable / callee-saved

V6 = SB = 9
R10 =

static base / callee-saved

V7 = SL = 10
R11 =

stack limit / callee-saved

V8 = FP = 11
R12 =

frame pointer

IP = 12
R13 =

intra-procedure scratch

SP = 13
R14 =

stack pointer

LR = 14
R15 =

link register (return address)

PC = 15

Class Method Summary collapse

Class Method Details

._check_reg(*regs) ⇒ Boolean

Check if a provided number represents a valid register

Returns:

  • (Boolean)


34
35
36
37
38
39
40
# File 'lib/rex/arch/arm.rb', line 34

def self._check_reg(*regs)
  regs.each do |reg|
    raise ArgumentError, "Invalid register #{reg}", caller if reg > 15 || reg < 0
  end

  nil
end

.reg_number(str) ⇒ Object

Returns the number associated with a named register.

Returns:

  • the number associated with a named register



28
29
30
# File 'lib/rex/arch/arm.rb', line 28

def self.reg_number(str)
  const_get(str.upcase)
end