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