class Object
Constants
- AF_INET
Net
- AF_INET6
- ARCH_ALL
- ARCH_ANY
Architecture constants
- ARCH_ARMBE
- ARCH_ARMLE
- ARCH_CBEA
- ARCH_CBEA64
- ARCH_CMD
- ARCH_DALVIK
- ARCH_FIREFOX
- ARCH_JAVA
- ARCH_MIPS
- ARCH_MIPSBE
- ARCH_MIPSLE
- ARCH_NODEJS
- ARCH_PHP
- ARCH_PPC
- ARCH_PPC64
- ARCH_PYTHON
- ARCH_RUBY
- ARCH_SPARC
- ARCH_TTY
- ARCH_TYPES
- ARCH_X64
- ARCH_X86
- ARCH_X86_64
- CREATE_SUSPENDED
Creation flags
- DELETE
Permissions
- ENDIAN_BIG
- ENDIAN_LITTLE
Endian constants
- EVENTLOG_BACKWARDS_READ
- EVENTLOG_FORWARDS_READ
- EVENTLOG_SEEK_READ
- EVENTLOG_SEQUENTIAL_READ
Event Log
- EWX_FORCE
- EWX_FORCEIFHUNG
- EWX_LOGOFF
Event Log
- EWX_POWEROFF
- EWX_REBOOT
- EWX_SHUTDOWN
- ExceptionCallStack
An instance of the log dispatcher exists in the global namespace, along with stubs for many of the common logging methods. Various sources can register themselves as a log sink such that logs can be directed at various targets depending on where they’re sourced from. By doing it this way, things like sessions can use the global logging stubs and still be directed at the correct log file.
- GENERIC_ALL
- GENERIC_EXECUTE
- GENERIC_READ
- GENERIC_WRITE
- GEN_EXEC
- GEN_NONE
Generic permissions
- GEN_READ
- GEN_WRITE
- HKEY_CLASSES_ROOT
Registry
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_DYN_DATA
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
- IS_ENDIAN_BIG
- IS_ENDIAN_LITTLE
- KEY_ALL_ACCESS
- KEY_CREATE_LINK
- KEY_CREATE_SUB_KEY
- KEY_ENUMERATE_SUB_KEYS
- KEY_EXECUTE
- KEY_NOTIFY
- KEY_QUERY_VALUE
Registry Permissions
- KEY_READ
- KEY_SET_VALUE
- KEY_WOW64_32KEY
- KEY_WOW64_64KEY
- KEY_WRITE
- LEV_0
LEV_0
- DefaultThis log level is the default log level if none is specified. It should be used when a log message should always be displayed when logging is enabled. Very few log messages should occur at this level aside from necessary information logging and error/warning logging. Debug logging at level zero is not advised.
- LEV_1
LEV_1
- ExtraThis log level should be used when extra information may be needed to understand the cause of an error or warning message or to get debugging information that might give clues as to why something is happening. This log level should be used only when information may be useful to understanding the behavior of something at a basic level. This log level should not be used in an exhaustively verbose fashion.
- LEV_2
LEV_2
- VerboseThis log level should be used when verbose information may be needed to analyze the behavior of the framework. This should be the default log level for all detailed information not falling into
LEV_0
orLEV_1
. It is recommended that this log level be used by default if you are unsure.- LEV_3
LEV_3
- InsanityThis log level should contain very verbose information about the behavior of the framework, such as detailed information about variable states at certain phases including, but not limited to, loop iterations, function calls, and so on. This log level will rarely be displayed, but when it is the information provided should make it easy to analyze any problem.
- LOG_DEBUG
- LOG_ERROR
Log severities
- LOG_INFO
- LOG_RAW
- LOG_WARN
- MAXIMUM_ALLOWED
- MEM_4MB_PAGES
- MEM_COMMIT
- MEM_DECOMMIT
- MEM_FREE
- MEM_IMAGE
- MEM_LARGE_PAGES
- MEM_MAPPED
- MEM_PHYSICAL
- MEM_PRIVATE
- MEM_RELEASE
- MEM_RESERVE
- MEM_RESET
- MEM_TOP_DOWN
- MEM_WRITE_WATCH
- PAGE_EXECUTE
- PAGE_EXECUTE_READ
- PAGE_EXECUTE_READWRITE
- PAGE_EXECUTE_WRITECOPY
- PAGE_GUARD
- PAGE_NOACCESS
Page Protections
- PAGE_NOCACHE
- PAGE_READONLY
- PAGE_READWRITE
- PAGE_WRITECOMBINE
- PAGE_WRITECOPY
- PROCESS_ALL
- PROCESS_ALL_ACCESS
- PROCESS_CREATE_PROCESS
- PROCESS_CREATE_THREAD
- PROCESS_DUP_HANDLE
- PROCESS_EXECUTE
- PROCESS_QUERY_INFORMATION
- PROCESS_READ
Generic process open permissions
- PROCESS_SET_INFORMATION
- PROCESS_SET_QUOTA
- PROCESS_SET_SESSIONID
- PROCESS_SUSPEND_RESUME
- PROCESS_TERMINATE
Process Permissions
- PROCESS_VM_OPERATION
- PROCESS_VM_READ
- PROCESS_VM_WRITE
- PROCESS_WRITE
- PROT_COW
- PROT_EXEC
- PROT_NONE
Generic page protection flags
- PROT_READ
- PROT_WRITE
- READ_CONTROL
- REG_BINARY
- REG_DWORD
- REG_DWORD_BIG_ENDIAN
- REG_DWORD_LITTLE_ENDIAN
- REG_EXPAND_SZ
- REG_LINK
- REG_MULTI_SZ
- REG_NONE
- REG_SZ
- SEC_COMMIT
- SEC_FILE
- SEC_IMAGE
- SEC_NOCACHE
- SEC_RESERVE
- SHTDN_REASON_DEFAULT
- SHTDN_REASON_FLAG_CLEAN_UI
- SHTDN_REASON_FLAG_COMMENT_REQUIRED
- SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED
- SHTDN_REASON_FLAG_DIRTY_UI
- SHTDN_REASON_FLAG_PLANNED
- SHTDN_REASON_FLAG_USER_DEFINED
- SHTDN_REASON_MAJOR_APPLICATION
- SHTDN_REASON_MAJOR_HARDWARE
- SHTDN_REASON_MAJOR_LEGACY_API
- SHTDN_REASON_MAJOR_NONE
- SHTDN_REASON_MAJOR_OPERATINGSYSTEM
- SHTDN_REASON_MAJOR_OTHER
- SHTDN_REASON_MAJOR_POWER
- SHTDN_REASON_MAJOR_SOFTWARE
- SHTDN_REASON_MAJOR_SYSTEM
- SHTDN_REASON_MINOR_BLUESCREEN
- SHTDN_REASON_MINOR_CORDUNPLUGGED
- SHTDN_REASON_MINOR_DC_DEMOTION
- SHTDN_REASON_MINOR_DC_PROMOTION
Shutdown Reason Codes
- SHTDN_REASON_MINOR_DISK
- SHTDN_REASON_MINOR_ENVIRONMENT
- SHTDN_REASON_MINOR_HARDWARE_DRIVER
- SHTDN_REASON_MINOR_HOTFIX
- SHTDN_REASON_MINOR_HOTFIX_UNINSTALL
- SHTDN_REASON_MINOR_HUNG
- SHTDN_REASON_MINOR_INSTALLATION
- SHTDN_REASON_MINOR_MAINTENANCE
- SHTDN_REASON_MINOR_MMC
- SHTDN_REASON_MINOR_NETWORKCARD
- SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY
- SHTDN_REASON_MINOR_NONE
- SHTDN_REASON_MINOR_OTHER
- SHTDN_REASON_MINOR_OTHERDRIVER
- SHTDN_REASON_MINOR_POWER_SUPPLY
- SHTDN_REASON_MINOR_PROCESSOR
- SHTDN_REASON_MINOR_RECONFIG
- SHTDN_REASON_MINOR_SECURITY
- SHTDN_REASON_MINOR_SECURITYFIX
- SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL
- SHTDN_REASON_MINOR_SERVICEPACK
- SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL
- SHTDN_REASON_MINOR_SYSTEMRESTORE
- SHTDN_REASON_MINOR_TERMSRV
- SHTDN_REASON_MINOR_UNSTABLE
- SHTDN_REASON_MINOR_UPGRADE
- SHTDN_REASON_MINOR_WMI
- SHTDN_REASON_VALID_BIT_MASK
- SHUT_RD
- SHUT_RDWR
Globalized socket constants
- SHUT_WR
- SPECIFIC_RIGHTS_ALL
- STANDARD_RIGHTS_ALL
- STANDARD_RIGHTS_EXECUTE
- STANDARD_RIGHTS_READ
- STANDARD_RIGHTS_REQUIRED
- STANDARD_RIGHTS_WRITE
- SYNCHRONIZE
- THREAD_ALL
- THREAD_ALL_ACCESS
- THREAD_DIRECT_IMPERSONATION
- THREAD_EXECUTE
- THREAD_GET_CONTEXT
- THREAD_IMPERSONATE
- THREAD_QUERY_INFORMATION
- THREAD_READ
Generic thread open permissions
- THREAD_SET_CONTEXT
- THREAD_SET_INFORMATION
- THREAD_SET_THREAD_TOKEN
- THREAD_SUSPEND_RESUME
- THREAD_TERMINATE
Thread Permissions
- THREAD_WRITE
- VirtualKeyCodes
Keyboard Mappings
- WRITE_DAC
- WRITE_OWNER
Public Instance Methods
# File lib/rex/zip/samples/recursive.rb, line 15 def add_file(zip, path) zip.add_file(path) end
If it’s a directory, Walk the directory and add each item
# File lib/rex/zip/samples/recursive.rb, line 23 def add_files(zip, path, recursive = nil) if (not add_file(zip, path)) return nil end if (recursive and File.stat(path).directory?) begin dir = Dir.open(path) rescue # skip this file return nil end dir.each { |f| next if (f == '.') next if (f == '..') full_path = path + '/' + f st = File.stat(full_path) if (st.directory?) puts "adding dir #{full_path}" add_files(zip, full_path, recursive) elsif (st.file?) puts "adding file #{full_path}" add_file(zip, full_path) end } end end
# File lib/rex/logging/log_dispatcher.rb, line 166 def deregister_log_source(src) $dispatcher.delete(src) end
# File lib/rex/logging/log_dispatcher.rb, line 132 def dlog(msg, src = 'core', level = 0, from = caller) $dispatcher.log(LOG_DEBUG, src, level, msg, from) end
# File lib/rex/logging/log_dispatcher.rb, line 136 def elog(msg, src = 'core', level = 0, from = caller) $dispatcher.log(LOG_ERROR, src, level, msg, from) end
# File lib/rex/logging/log_dispatcher.rb, line 174 def get_log_level(src) $dispatcher.get_level(src) end
# File lib/rex/logging/log_dispatcher.rb, line 144 def ilog(msg, src = 'core', level = 0, from = caller) $dispatcher.log(LOG_INFO, src, level, msg, from) end
# File lib/rex/logging/log_dispatcher.rb, line 156 def log_source_registered?(src) ($dispatcher[src] != nil) end
# File lib/rex/zip/samples/mkwar.rb, line 17 def rand_text_alpha(len) buff = "" foo = [] foo += ('A' .. 'Z').to_a foo += ('a' .. 'z').to_a # Generate a buffer from the remaining bytes if foo.length >= 256 len.times { buff << Kernel.rand(256) } else len.times { buff << foo[ rand(foo.length) ] } end return buff end
# File lib/rex/logging/log_dispatcher.rb, line 160 def register_log_source(src, sink, level = nil) $dispatcher[src] = sink set_log_level(src, level) if (level) end
# File lib/rex/logging/log_dispatcher.rb, line 148 def rlog(msg, src = 'core', level = 0, from = caller) if (msg == ExceptionCallStack) msg = "\nCall stack:\n" + $@.join("\n") + "\n" end $dispatcher.log(LOG_RAW, src, level, msg, from) end
# File lib/rex/logging/log_dispatcher.rb, line 170 def set_log_level(src, level) $dispatcher.set_level(src, level) end
recursive printer :)
# File lib/rex/ole/samples/dir.rb, line 22 def show_entries(ent, spaces=0) spstr = " " * spaces puts "%s + #{ent.name}" % spstr ent.each { |el| show_entries(el, spaces+2) } end
# File lib/rex/logging/log_dispatcher.rb, line 140 def wlog(msg, src = 'core', level = 0, from = caller) $dispatcher.log(LOG_WARN, src, level, msg, from) end