Namespace

Class/Module Index [+]

Quicksearch

Rex::Arch

This module provides generalized methods for performing operations that are architecture specific. Furthermore, the modules contained within this module provide features that are specific to a given architecture.

Public Class Methods

adjust_stack_pointer(arch, adjustment) click to toggle source

This routine adjusts the stack pointer for a given architecture.

# File lib/rex/arch.rb, line 24
def self.adjust_stack_pointer(arch, adjustment)

        if ( arch.is_a?(::Array))
                arch = arch[0]
        end

        case arch
                when /x86/
                        Rex::Arch::X86.adjust_reg(Rex::Arch::X86::ESP, adjustment)
                else
                        nil
        end
end
endian(arch) click to toggle source

This routine reports the endianess of a given architecture

# File lib/rex/arch.rb, line 72
def self.endian(arch)

        if ( arch.is_a?(::Array))
                arch = arch[0]
        end

        case arch
                when ARCH_X86
                        return ENDIAN_LITTLE
                when ARCH_X86_64
                        return ENDIAN_LITTLE
                when ARCH_MIPS # ambiguous
                        return ENDIAN_BIG
                when ARCH_MIPSLE
                        return ENDIAN_LITTLE
                when ARCH_MIPSBE
                        return ENDIAN_BIG
                when ARCH_PPC  # ambiguous
                        return ENDIAN_BIG
                when ARCH_SPARC
                        return ENDIAN_BIG
                when ARCH_ARMLE
                        return ENDIAN_LITTLE
                when ARCH_ARMBE
                        return ENDIAN_BIG
        end

        return ENDIAN_LITTLE
end
pack_addr(arch, addr) click to toggle source

This route provides address packing for the specified arch

# File lib/rex/arch.rb, line 41
def self.pack_addr(arch, addr)

        if ( arch.is_a?(::Array))
                arch = arch[0]
        end

        case arch
                when ARCH_X86
                        [addr].pack('V')
                when ARCH_X86_64
                        [addr].pack('Q')
                when ARCH_MIPS # ambiguous
                        [addr].pack('N')
                when ARCH_MIPSBE
                        [addr].pack('N')
                when ARCH_MIPSLE
                        [addr].pack('V')
                when ARCH_PPC  # ambiguous
                        [addr].pack('N')
                when ARCH_SPARC
                        [addr].pack('N')
                when ARCH_ARMLE
                        [addr].pack('V')
                when ARCH_ARMBE
                        [addr].pack('N')
        end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.