lib/rex/arch.rb in rex-arch-0.1.3 vs lib/rex/arch.rb in rex-arch-0.1.4
- old
+ new
@@ -22,62 +22,40 @@
#
# Architecture constants
#
ARCH_ANY = '_any_'
- ARCH_X86 = 'x86'
- ARCH_X86_64 = 'x86_64'
- ARCH_X64 = 'x64' # To be used for compatability with ARCH_X86_64
- ARCH_MIPS = 'mips'
- ARCH_MIPSLE = 'mipsle'
- ARCH_MIPSBE = 'mipsbe'
- ARCH_PPC = 'ppc'
- ARCH_PPC64 = 'ppc64'
- ARCH_CBEA = 'cbea'
- ARCH_CBEA64 = 'cbea64'
- ARCH_SPARC = 'sparc'
- ARCH_CMD = 'cmd'
- ARCH_PHP = 'php'
- ARCH_TTY = 'tty'
- ARCH_ARMLE = 'armle'
- ARCH_ARMBE = 'armbe'
- ARCH_JAVA = 'java'
- ARCH_RUBY = 'ruby'
- ARCH_DALVIK = 'dalvik'
- ARCH_PYTHON = 'python'
- ARCH_NODEJS = 'nodejs'
- ARCH_FIREFOX = 'firefox'
- ARCH_ZARCH = 'zarch'
- ARCH_TYPES =
+ ARCH_ALL = ARCH_TYPES =
[
- ARCH_X86,
- ARCH_X86_64,
- ARCH_X64,
- ARCH_MIPS,
- ARCH_MIPSLE,
- ARCH_MIPSBE,
- ARCH_PPC,
- ARCH_PPC64,
- ARCH_CBEA,
- ARCH_CBEA64,
- ARCH_SPARC,
- ARCH_ARMLE,
- ARCH_ARMBE,
- ARCH_CMD,
- ARCH_PHP,
- ARCH_TTY,
- ARCH_JAVA,
- ARCH_RUBY,
- ARCH_DALVIK,
- ARCH_PYTHON,
- ARCH_NODEJS,
- ARCH_FIREFOX,
- ARCH_ZARCH,
+ ARCH_X86 = 'x86',
+ ARCH_X86_64 = 'x86_64',
+ ARCH_X64 = 'x64', # To be used for compatability with ARCH_X86_64
+ ARCH_MIPS = 'mips',
+ ARCH_MIPSLE = 'mipsle',
+ ARCH_MIPSBE = 'mipsbe',
+ ARCH_MIPS64 = 'mips64',
+ ARCH_PPC = 'ppc',
+ ARCH_PPC64 = 'ppc64',
+ ARCH_PPC64LE = 'ppc64le',
+ ARCH_CBEA = 'cbea',
+ ARCH_CBEA64 = 'cbea64',
+ ARCH_SPARC = 'sparc',
+ ARCH_ARMLE = 'armle',
+ ARCH_ARMBE = 'armbe',
+ ARCH_AARCH64 = 'aarch64',
+ ARCH_CMD = 'cmd',
+ ARCH_PHP = 'php',
+ ARCH_TTY = 'tty',
+ ARCH_JAVA = 'java',
+ ARCH_RUBY = 'ruby',
+ ARCH_DALVIK = 'dalvik',
+ ARCH_PYTHON = 'python',
+ ARCH_NODEJS = 'nodejs',
+ ARCH_FIREFOX = 'firefox',
+ ARCH_ZARCH = 'zarch',
]
- ARCH_ALL = ARCH_TYPES
-
#
# Endian constants
#
ENDIAN_LITTLE = 0
ENDIAN_BIG = 1
@@ -120,18 +98,24 @@
[addr].pack('N')
when ARCH_MIPSBE
[addr].pack('N')
when ARCH_MIPSLE
[addr].pack('V')
+ when ARCH_MIPS64
+ [addr].pack('Q>')
when ARCH_PPC # ambiguous
[addr].pack('N')
+ when ARCH_PPC64LE
+ [addr].pack('Q<')
when ARCH_SPARC
[addr].pack('N')
when ARCH_ARMLE
[addr].pack('V')
when ARCH_ARMBE
[addr].pack('N')
+ when ARCH_AARCH64
+ [addr].pack('Q<')
when ARCH_ZARCH
[addr].pack('Q>')
end
end
@@ -155,17 +139,23 @@
return ENDIAN_BIG
when ARCH_MIPSLE
return ENDIAN_LITTLE
when ARCH_MIPSBE
return ENDIAN_BIG
+ when ARCH_MIPS64
+ return ENDIAN_BIG
when ARCH_PPC # ambiguous
return ENDIAN_BIG
+ when ARCH_PPC64LE
+ return ENDIAN_LITTLE
when ARCH_SPARC
return ENDIAN_BIG
when ARCH_ARMLE
return ENDIAN_LITTLE
when ARCH_ARMBE
return ENDIAN_BIG
+ when ARCH_AARCH64
+ return ENDIAN_LITTLE
when ARCH_ZARCH
return ENDIAN_BIG
end
return ENDIAN_LITTLE