module OneGadget::ABI

Defines the ABI of different architectures.

Constants

AARCH64

Registers of AArch64.

X86_32

Registers of i386.

X86_64

Registers of x86_64.

Public Instance Methods

aarch64() click to toggle source

Registers’ name of aarch64. @return [Array<String>] List of registers.

# File lib/one_gadget/abi.rb, line 33
def aarch64
  AARCH64
end
all() click to toggle source

Returns all names of registers. @return [Array<String>] List of registers.

# File lib/one_gadget/abi.rb, line 39
def all
  amd64 + aarch64
end
amd64() click to toggle source

Registers’ name of amd64. @return [Array<String>] List of registers.

# File lib/one_gadget/abi.rb, line 21
def amd64
  X86_64
end
i386() click to toggle source

Registers’ name of i386. @return [Array<String>] List of registers.

# File lib/one_gadget/abi.rb, line 27
def i386
  X86_32
end
stack_register?(reg) click to toggle source

Checks if the register is a stack-related pointer. @param [String] reg

Register's name.

@return [Boolean]

# File lib/one_gadget/abi.rb, line 47
def stack_register?(reg)
  %w[esp ebp rsp rbp sp x29].include?(reg)
end