Fixes #4371, Converts many uses of require to autoload

git-svn-id: file:///home/svn/framework3/trunk@12554 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
Joshua Drake 2011-05-06 18:47:10 +00:00
parent 57b530ccf6
commit 05f107f466
37 changed files with 323 additions and 133 deletions

View File

@ -2,7 +2,6 @@ require 'rex/constants'
module Rex module Rex
### ###
# #
# This module provides generalized methods for performing operations that are # This module provides generalized methods for performing operations that are
@ -15,8 +14,8 @@ module Arch
# #
# Architecture classes # Architecture classes
# #
require 'rex/arch/x86' autoload :X86, 'rex/arch/x86'
require 'rex/arch/sparc' autoload :Sparc, 'rex/arch/sparc'
# #
# This routine adjusts the stack pointer for a given architecture. # This routine adjusts the stack pointer for a given architecture.

17
lib/rex/encoder.rb Normal file
View File

@ -0,0 +1,17 @@
##
# $Id$
#
# This file maps encoders for autoload
##
module Rex::Encoder
# Encoder support code
autoload :Xor, 'rex/encoder/xor'
autoload :Alpha2, 'rex/encoder/alpha2'
autoload :NonAlpha, 'rex/encoder/nonalpha'
autoload :NonUpper, 'rex/encoder/nonupper'
# Hrm? Is these in the wrong module?
autoload :XDR, 'rex/encoder/xdr'
autoload :NDR, 'rex/encoder/ndr'
end

View File

@ -18,14 +18,16 @@
module Rex module Rex
module Encoder module Encoder
module Alpha2 module Alpha2
end end end
# #
# include the Alpha2 encodings # autoload the Alpha2 encoders
# #
autoload :Generic, 'rex/encoder/alpha2/generic'
autoload :AlphaMixed, 'rex/encoder/alpha2/alpha_mixed'
autoload :AlphaUpper, 'rex/encoder/alpha2/alpha_upper'
autoload :UnicodeMixed, 'rex/encoder/alpha2/unicode_mixed'
autoload :UnicodeUpper, 'rex/encoder/alpha2/unicode_upper'
require 'rex/encoder/alpha2/generic' end
require 'rex/encoder/alpha2/alpha_mixed' end
require 'rex/encoder/alpha2/alpha_upper' end
require 'rex/encoder/alpha2/unicode_mixed'
require 'rex/encoder/alpha2/unicode_upper'

View File

@ -10,6 +10,9 @@ module Encoder
### ###
class Xor class Xor
autoload :Dword, 'rex/encoder/xor/dword'
autoload :DwordAdditive, 'rex/encoder/xor/dword_additive'
attr_accessor :raw, :encoded, :badchars, :opts, :key, :fkey # :nodoc: attr_accessor :raw, :encoded, :badchars, :opts, :key, :fkey # :nodoc:
# #
@ -65,5 +68,5 @@ class Xor
end end
end end end
end

11
lib/rex/encoders.rb Normal file
View File

@ -0,0 +1,11 @@
##
# $Id$
#
# This file maps encoders for autoload
##
require 'rex'
module Rex::Encoders
autoload :XorDword, 'rex/encoders/xor_dword'
autoload :XorDwordAdditive, 'rex/encoders/xor_dword_additive'
end

10
lib/rex/encoding.rb Normal file
View File

@ -0,0 +1,10 @@
##
# $Id$
#
# This file maps encodings for autoload
##
module Rex::Encoding
# Encoding support code
autoload :Xor, 'rex/encoding/xor'
end

View File

@ -1,20 +1,19 @@
#!/usr/bin/env ruby
#
# make sure the namespace is created
#
module Rex module Rex
module Encoding module Encoding
module Xor module Xor
end end end
# #
# include the Xor encodings # autoload the Xor encodings
# #
autoload :Generic, 'rex/encoding/xor/generic'
autoload :Byte, 'rex/encoding/xor/byte'
autoload :Word, 'rex/encoding/xor/word'
autoload :Dword, 'rex/encoding/xor/dword'
autoload :DwordAdditive, 'rex/encoding/xor/dword_additive'
autoload :Qword, 'rex/encoding/xor/qword'
require 'rex/encoding/xor/generic' autoload :Exception, 'rex/encoding/xor/exceptions'
require 'rex/encoding/xor/byte'
require 'rex/encoding/xor/word' end
require 'rex/encoding/xor/dword' end
require 'rex/encoding/xor/qword' end

16
lib/rex/io.rb Normal file
View File

@ -0,0 +1,16 @@
##
# $Id$
#
# This file simply provides an autoload interface for the children
# of Rex::IO
#
##
module Rex::IO
autoload :Stream, 'rex/io/stream'
autoload :StreamAbstraction, 'rex/io/stream_abstraction'
autoload :StreamServer, 'rex/io/stream_server'
autoload :BidirectionalPipe, 'rex/io/bidirectional_pipe'
autoload :DatagramAbstraction, 'rex/io/datagram_abstraction'
autoload :RingBuffer, 'rex/io/ring_buffer'
end

View File

@ -1,4 +1,17 @@
#!/usr/bin/env ruby ##
# $Id: $
#
# maps autoload for logging classes
##
require 'rex/constants' # for LEV_'s require 'rex/constants' # for LEV_'s
require 'rex/logging/log_dispatcher'
module Rex
module Logging
autoload :LogSink, 'rex/logging/log_sink'
autoload :Sinks, 'rex/logging/sinks'
end
end
# This defines a global so it must be loaded always
require 'rex/logging/log_dispatcher'

View File

@ -1,5 +1,4 @@
require 'rex/sync' require 'rex/sync'
require 'rex/logging/log_sink'
module Rex module Rex
module Logging module Logging

View File

@ -37,6 +37,3 @@ end
end end
end end
require 'rex/logging/sinks/flatfile'
require 'rex/logging/sinks/stderr'

16
lib/rex/logging/sinks.rb Normal file
View File

@ -0,0 +1,16 @@
##
# $Id$
#
# Map log sinks for autload
##
module Rex
module Logging
module Sinks
autoload :Flatfile, 'rex/logging/sinks/flatfile'
autoload :Stderr, 'rex/logging/sinks/stderr'
end
end
end

View File

@ -1,3 +1,5 @@
require 'rex/logging'
module Rex module Rex
module Logging module Logging
module Sinks module Sinks

23
lib/rex/parser.rb Normal file
View File

@ -0,0 +1,23 @@
##
# $Id$
#
# This file maps parsers for autoload
##
module Rex
module Parser
# General parsers
autoload :Arguments, 'rex/parser/arguments'
autoload :Ini, 'rex/parser/ini'
# Data import parsers
autoload :NmapXMLStreamParser, 'rex/parser/nmap_xml'
autoload :NexposeXMLStreamParser, 'rex/parser/nexpose_xml'
autoload :RetinaXMLStreamParser, 'rex/parser/retina_xml'
autoload :NetSparkerXMLStreamParser, 'rex/parser/netsparker_xml'
autoload :NessusXMLStreamParser, 'rex/parser/nessus_xml'
autoload :IP360XMLStreamParser, 'rex/parser/ip360_xml'
autoload :IP360ASPLXMLStreamParser, 'rex/parser/ip360_aspl_xml'
autoload :AppleBackupManifestDB, 'rex/parser/apple_backup_manifestdb'
end
end

View File

@ -1 +1,3 @@
require 'rex/payloads/win32' module Rex::Payloads
autoload :Win32, 'rex/payloads/win32'
end

View File

@ -1,2 +1,4 @@
require 'rex/payloads/win32/common' module Rex::Payloads::Win32
require 'rex/payloads/win32/kernel' autoload :Common, 'rex/payloads/win32/common'
autoload :Kernel, 'rex/payloads/win32/kernel'
end

View File

@ -1,14 +1,13 @@
module Rex module Rex
module Payloads module Payloads
module Win32 module Win32
require 'rex/payloads/win32/kernel/common'
require 'rex/payloads/win32/kernel/recovery'
require 'rex/payloads/win32/kernel/stager'
require 'rex/payloads/win32/kernel/migration'
module Kernel module Kernel
autoload :Common, 'rex/payloads/win32/kernel/common'
autoload :Recovery, 'rex/payloads/win32/kernel/recovery'
autoload :Stager, 'rex/payloads/win32/kernel/stager'
autoload :Migration, 'rex/payloads/win32/kernel/migration'
# #
# Constructs a kernel-mode payload using the supplied options. The options # Constructs a kernel-mode payload using the supplied options. The options
# can be: # can be:

View File

@ -1,12 +1,11 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
#
# $Id$ # $Id$
#
module Rex module Rex
module PeParsey module PeParsey
autoload :Pe, 'rex/peparsey/pe'
autoload :PeMemDump, 'rex/peparsey/pe_memdump'
end end
end end
require 'rex/peparsey/pe'
require 'rex/peparsey/pe_memdump'

View File

@ -1,13 +1,12 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
#
# $Id$ # $Id$
#
module Rex module Rex
module PeScan module PeScan
autoload :Analyze, 'rex/pescan/analyze'
autoload :Scanner, 'rex/pescan/scanner'
autoload :Search, 'rex/pescan/search'
end end
end end
require 'rex/pescan/analyze'
require 'rex/pescan/scanner'
require 'rex/pescan/search'

View File

@ -1 +1,11 @@
require 'rex/platforms/windows' ##
# $Id: $
#
# This file maps Platforms for autoload
##
module Rex
module Platforms
autoload :Windows, 'rex/platforms/windows'
end
end

View File

@ -1,13 +1,24 @@
require 'rex/proto/http' ##
require 'rex/proto/smb' # $Id$
require 'rex/proto/ntlm' #
require 'rex/proto/dcerpc' # This file maps Proto items for autoload
require 'rex/proto/drda' ##
module Rex module Rex
module Proto module Proto
attr_accessor :alias autoload :Http, 'rex/proto/http'
autoload :SMB, 'rex/proto/smb'
autoload :NTLM, 'rex/proto/ntlm'
autoload :DCERPC, 'rex/proto/dcerpc'
autoload :DRDA, 'rex/proto/drda'
autoload :SunRPC, 'rex/proto/sunrpc'
autoload :DHCP, 'rex/proto/dhcp'
autoload :TFTP, 'rex/proto/tftp'
autoload :RFB, 'rex/proto/rfb'
attr_accessor :alias
end end
end end

View File

@ -1,6 +1,15 @@
require 'rex/proto/dcerpc/uuid' module Rex
require 'rex/proto/dcerpc/response' module Proto
require 'rex/proto/dcerpc/client' module DCERPC
require 'rex/proto/dcerpc/packet'
require 'rex/proto/dcerpc/handle' autoload :Exceptions, 'rex/proto/dcerpc/exceptions'
require 'rex/proto/dcerpc/ndr' autoload :UUID, 'rex/proto/dcerpc/uuid'
autoload :Response, 'rex/proto/dcerpc/response'
autoload :Client, 'rex/proto/dcerpc/client'
autoload :Packet, 'rex/proto/dcerpc/packet'
autoload :Handle, 'rex/proto/dcerpc/handle'
autoload :NDR, 'rex/proto/dcerpc/ndr'
end
end
end

View File

@ -1,5 +1,10 @@
require 'rex/proto/drda/constants' module Rex
module Proto
module DRDA
autoload :Constants, 'rex/proto/drda/constants'
autoload :Utils, 'rex/proto/drda/utils'
end
end
end
require 'rex/proto/drda/packet' require 'rex/proto/drda/packet'
require 'rex/proto/drda/utils'

View File

@ -1,5 +1,18 @@
# These are required by all uses of Rex::Proto::Http
require 'rex/proto/http/packet' require 'rex/proto/http/packet'
require 'rex/proto/http/request' require 'rex/proto/http/request'
require 'rex/proto/http/response' require 'rex/proto/http/response'
require 'rex/proto/http/client'
require 'rex/proto/http/server' # These are specific to use case
module Rex
module Proto
module Http
autoload :Client, 'rex/proto/http/client'
autoload :Server, 'rex/proto/http/server'
autoload :Handler, 'rex/proto/http/handler'
end
end
end

View File

@ -1,4 +1,5 @@
require 'rex/proto/http' require 'rex/proto/http'
require 'rex/text'
module Rex module Rex
module Proto module Proto

View File

@ -1,7 +1,13 @@
require 'rex/proto/ntlm/constants' module Rex
require 'rex/proto/ntlm/exceptions' module Proto
require 'rex/proto/ntlm/crypt' module NTLM
require 'rex/proto/ntlm/utils' autoload :Constants, 'rex/proto/ntlm/constants'
require 'rex/proto/ntlm/base' autoload :Exceptions, 'rex/proto/ntlm/exceptions'
require 'rex/proto/ntlm/message'
autoload :Base, 'rex/proto/ntlm/base'
autoload :Crypt, 'rex/proto/ntlm/crypt'
autoload :Message, 'rex/proto/ntlm/message'
autoload :Utils, 'rex/proto/ntlm/utils'
end
end
end

View File

@ -45,6 +45,8 @@
#this module defines the message class , useful for easily handling type 1/2/3 ntlm messages #this module defines the message class , useful for easily handling type 1/2/3 ntlm messages
require 'rex/text'
require 'rex/proto/ntlm/base' require 'rex/proto/ntlm/base'
require 'rex/proto/ntlm/constants' require 'rex/proto/ntlm/constants'
require 'rex/proto/ntlm/crypt' require 'rex/proto/ntlm/crypt'

View File

@ -1,7 +1,15 @@
require 'rex/proto/smb/constants' module Rex
require 'rex/proto/smb/exceptions' module Proto
require 'rex/proto/smb/evasions' module SMB
require 'rex/proto/smb/crypt'
require 'rex/proto/smb/utils' autoload :Constants, 'rex/proto/smb/constants'
require 'rex/proto/smb/client' autoload :Exceptions, 'rex/proto/smb/exceptions'
require 'rex/proto/smb/simpleclient' autoload :Evasions, 'rex/proto/smb/evasions'
autoload :Crypt, 'rex/proto/smb/crypt'
autoload :Utils, 'rex/proto/smb/utils'
autoload :Client, 'rex/proto/smb/client'
autoload :SimpleClient, 'rex/proto/smb/simpleclient'
end
end
end

View File

@ -1,6 +1,5 @@
require 'singleton' require 'singleton'
require 'rex' require 'rex'
require 'rex/service'
module Rex module Rex

View File

@ -12,19 +12,23 @@ module Rex
### ###
module Socket module Socket
module Comm # Plumbing / Aux
end autoload :Parameters, 'rex/socket/parameters'
autoload :Comm, 'rex/socket/comm'
require 'rex/socket/parameters' # Underlying protocol-specific
require 'rex/socket/tcp' autoload :Ip, 'rex/socket/ip'
require 'rex/socket/tcp_server' autoload :Udp, 'rex/socket/udp'
autoload :Tcp, 'rex/socket/tcp'
autoload :TcpServer, 'rex/socket/tcp_server'
autoload :SslTcp, 'rex/socket/ssl_tcp'
autoload :SslTcpServer, 'rex/socket/ssl_tcp_server'
require 'rex/socket/comm' # Utilities
require 'rex/socket/comm/local' autoload :SwitchBoard, 'rex/socket/switch_board'
autoload :SubnetWalker, 'rex/socket/subnet_walker'
require 'rex/socket/switch_board' autoload :Range, 'rex/socket/range_walker'
require 'rex/socket/subnet_walker' autoload :RangeWalker, 'rex/socket/range_walker'
require 'rex/socket/range_walker'
## ##
# #

View File

@ -14,6 +14,8 @@ module Socket
### ###
module Comm module Comm
autoload :Local, 'rex/socket/comm/local'
### ###
# #
# This mixin provides stubs for event notification handlers that can be # This mixin provides stubs for event notification handlers that can be

View File

@ -1,10 +1,6 @@
require 'singleton' require 'rex/compat'
require 'rex/socket' require 'rex/socket'
require 'rex/socket/tcp' require 'singleton'
require 'rex/socket/ssl_tcp'
require 'rex/socket/ssl_tcp_server'
require 'rex/socket/udp'
require 'rex/socket/ip'
require 'timeout' require 'timeout'
### ###

View File

@ -1,6 +1,6 @@
#!/usr/bin/env ruby module Rex
autoload :ReadWriteLock, 'rex/sync/read_write_lock'
require 'rex/sync/thread_safe' autoload :ThreadSafe, 'rex/sync/thread_safe'
require 'rex/sync/ref' autoload :Ref, 'rex/sync/ref'
require 'rex/sync/read_write_lock' autoload :Sync, 'rex/sync/event'
require 'rex/sync/event' end

View File

@ -3,19 +3,19 @@
# wrappers of the rex library. # wrappers of the rex library.
# #
# General classes require 'rex'
require 'rex/ui/output'
require 'rex/ui/progress_tracker'
# Text-based user interfaces module Rex
require 'rex/ui/text/input' module Ui
require 'rex/ui/text/shell' # General classes
require 'rex/ui/text/dispatcher_shell' autoload :Output, 'rex/ui/output'
require 'rex/ui/text/irb_shell' autoload :ProgressTracker, 'rex/ui/progress_tracker'
require 'rex/ui/text/color' # Text-based user interfaces
require 'rex/ui/text/table' autoload :Text, 'rex/ui/text'
# Ui subscriber # Ui subscriber
require 'rex/ui/subscriber' autoload :Subscriber, 'rex/ui/subscriber'
require 'rex/ui/interactive' autoload :Interactive, 'rex/ui/interactive'
end
end

17
lib/rex/ui/text.rb Normal file
View File

@ -0,0 +1,17 @@
module Rex
module Ui
module Text
autoload :Input, 'rex/ui/text/input'
autoload :Output, 'rex/ui/text/output'
autoload :Color, 'rex/ui/text/color'
autoload :Table, 'rex/ui/text/table'
autoload :PseudoShell, 'rex/ui/text/shell'
autoload :Shell, 'rex/ui/text/shell'
autoload :DispatcherShell, 'rex/ui/text/dispatcher_shell'
autoload :IrbShell, 'rex/ui/text/irb_shell'
autoload :ProgressTracker, 'rex/ui/text/progress_tracker'
end
end
end

View File

@ -13,10 +13,10 @@ module Text
### ###
class Input class Input
require 'rex/ui/text/input/stdio' autoload :Buffer, 'rex/ui/text/color'
require 'rex/ui/text/input/readline' autoload :Stdio, 'rex/ui/text/input/stdio'
require 'rex/ui/text/input/socket' autoload :Readline, 'rex/ui/text/input/readline'
require 'rex/ui/text/color' autoload :Socket, 'rex/ui/text/input/socket'
include Rex::Ui::Text::Color include Rex::Ui::Text::Color

View File

@ -12,11 +12,10 @@ module Text
### ###
class Output < Rex::Ui::Output class Output < Rex::Ui::Output
require 'rex/ui/text/output/stdio' autoload :Stdio, 'rex/ui/text/output/stdio'
require 'rex/ui/text/output/socket' autoload :Socket, 'rex/ui/text/output/socket'
require 'rex/ui/text/output/buffer' autoload :Buffer, 'rex/ui/text/output/buffer'
require 'rex/ui/text/output/file' autoload :File, 'rex/ui/text/output/file'
require 'rex/ui/text/color'
include Rex::Ui::Text::Color include Rex::Ui::Text::Color