lib/rex/proto/dcerpc/exceptions.rb in librex-0.0.68 vs lib/rex/proto/dcerpc/exceptions.rb in librex-0.0.70
- old
+ new
@@ -3,147 +3,147 @@
module Proto
module DCERPC
module Exceptions
class Error < ::RuntimeError
-
- @@errors = {
- 0x00000000 => "stub-defined",
- 0x00000001 => "nca_s_fault_other",
- 0x00000005 => "nca_s_fault_access_denied",
- 0x000006d8 => "nca_s_fault_cant_perform",
- 0x000006f7 => "nca_s_fault_ndr",
- 0x16c9a001 => "rpc_s_op_rng_error",
- 0x16c9a006 => "rpc_s_wrong_boot_time",
- 0x16c9a012 => "rpc_s_no_memory",
- 0x16c9a016 => "rpc_s_comm_failure",
- 0x16c9a01b => "rpc_s_fault_object_not_found",
- 0x16c9a02c => "rpc_s_unknown_if",
- 0x16c9a02d => "rpc_s_unsupported_type",
- 0x16c9a030 => "rpc_s_cancel_timeout",
- 0x16c9a031 => "rpc_s_call_cancelled",
- 0x16c9a036 => "rpc_s_connection_closed",
- 0x16c9a041 => "rpc_s_connect_timed_out",
- 0x16c9a042 => "rpc_s_connect_rejected",
- 0x16c9a043 => "rpc_s_network_unreachable",
- 0x16c9a044 => "rpc_s_connect_no_resources",
- 0x16c9a045 => "rpc_s_rem_network_shutdown",
- 0x16c9a046 => "rpc_s_too_many_rem_connects",
- 0x16c9a047 => "rpc_s_no_rem_endpoint",
- 0x16c9a048 => "rpc_s_rem_host_down",
- 0x16c9a049 => "rpc_s_host_unreachable",
- 0x16c9a04a => "rpc_s_access_control_info_inv",
- 0x16c9a04b => "rpc_s_loc_connect_aborted",
- 0x16c9a04c => "rpc_s_connect_closed_by_rem",
- 0x16c9a04d => "rpc_s_rem_host_crashed",
- 0x16c9a074 => "rpc_s_fault_addr_error",
- 0x16c9a075 => "rpc_s_fault_context_mismatch",
- 0x16c9a076 => "rpc_s_fault_fp_div_by_zero",
- 0x16c9a077 => "rpc_s_fault_fp_error",
- 0x16c9a078 => "rpc_s_fault_fp_overflow",
- 0x16c9a079 => "rpc_s_fault_fp_underflow",
- 0x16c9a07a => "rpc_s_fault_ill_inst",
- 0x16c9a07b => "rpc_s_fault_int_div_by_zero",
- 0x16c9a07c => "rpc_s_fault_int_overflow",
- 0x16c9a07d => "rpc_s_fault_invalid_bound",
- 0x16c9a07e => "rpc_s_fault_invalid_tag",
- 0x16c9a07f => "rpc_s_fault_pipe_closed",
- 0x16c9a080 => "rpc_s_fault_pipe_comm_error",
- 0x16c9a081 => "rpc_s_fault_pipe_discipline",
- 0x16c9a082 => "rpc_s_fault_pipe_empty",
- 0x16c9a083 => "rpc_s_fault_pipe_memory",
- 0x16c9a084 => "rpc_s_fault_pipe_order",
- 0x16c9a085 => "rpc_s_fault_remote_comm_failure",
- 0x16c9a086 => "rpc_s_fault_remote_no_memory",
- 0x16c9a087 => "rpc_s_fault_unspec",
- 0x16c9a0a8 => "rpc_s_no_ns_permission",
- 0x16c9a0b5 => "rpc_s_no_more_bindings",
- 0x16c9a113 => "rpc_s_fault_user_defined",
- 0x16c9a116 => "rpc_s_fault_tx_open_failed",
- 0x16c9a16e => "rpc_s_fault_codeset_conv_error",
- 0x16c9a170 => "rpc_s_fault_no_client_stub",
- 0x1c000001 => "nca_s_fault_int_div_by_zero",
- 0x1c000002 => "nca_s_fault_addr_error",
- 0x1c000003 => "nca_s_fault_fp_div_zero",
- 0x1c000004 => "nca_s_fault_fp_underflow",
- 0x1c000005 => "nca_s_fault_fp_overflow",
- 0x1c000006 => "nca_s_fault_invalid_tag",
- 0x1c000007 => "nca_s_fault_invalid_bound",
- 0x1c000008 => "nca_rpc_version_mismatch",
- 0x1c000009 => "nca_unspec_reject",
- 0x1c00000a => "nca_s_bad_actid",
- 0x1c00000b => "nca_who_are_you_failed",
- 0x1c00000c => "nca_manager_not_entered",
- 0x1c00000d => "nca_s_fault_cancel",
- 0x1c00000e => "nca_s_fault_ill_inst",
- 0x1c00000f => "nca_s_fault_fp_error",
- 0x1c000010 => "nca_s_fault_int_overflow",
- 0x1c000014 => "nca_s_fault_pipe_empty",
- 0x1c000015 => "nca_s_fault_pipe_closed",
- 0x1c000016 => "nca_s_fault_pipe_order",
- 0x1c000017 => "nca_s_fault_pipe_discipline",
- 0x1c000018 => "nca_s_fault_pipe_comm_error",
- 0x1c000019 => "nca_s_fault_pipe_memory",
- 0x1c00001a => "nca_s_fault_context_mismatch",
- 0x1c00001b => "nca_s_fault_remote_no_memory",
- 0x1c00001c => "nca_invalid_pres_context_id",
- 0x1c00001d => "nca_unsupported_authn_level",
- 0x1c00001f => "nca_invalid_checksum",
- 0x1c000020 => "nca_invalid_crc",
- 0x1c000021 => "ncs_s_fault_user_defined",
- 0x1c000022 => "nca_s_fault_tx_open_failed",
- 0x1c000023 => "nca_s_fault_codeset_conv_error",
- 0x1c000024 => "nca_s_fault_object_not_found",
- 0x1c000025 => "nca_s_fault_no_client_stub",
- 0x1c010002 => "nca_op_rng_error",
- 0x1c010003 => "nca_unk_if",
- 0x1c010006 => "nca_wrong_boot_time",
- 0x1c010009 => "nca_s_you_crashed",
- 0x1c01000b => "nca_proto_error",
- 0x1c010013 => "nca_out_args_too_big",
- 0x1c010014 => "nca_server_too_busy",
- 0x1c010017 => "nca_unsupported_type"
- }
-
- def initialize(*args)
- super(*args)
- end
- # returns an error string if it exists, otherwise just the error code
- def get_error(error)
- string = ''
- if @@errors[error]
- string = @@errors[error]
- else
- string = sprintf('0x%.8x',error)
- end
- end
+ @@errors = {
+ 0x00000000 => "stub-defined",
+ 0x00000001 => "nca_s_fault_other",
+ 0x00000005 => "nca_s_fault_access_denied",
+ 0x000006d8 => "nca_s_fault_cant_perform",
+ 0x000006f7 => "nca_s_fault_ndr",
+ 0x16c9a001 => "rpc_s_op_rng_error",
+ 0x16c9a006 => "rpc_s_wrong_boot_time",
+ 0x16c9a012 => "rpc_s_no_memory",
+ 0x16c9a016 => "rpc_s_comm_failure",
+ 0x16c9a01b => "rpc_s_fault_object_not_found",
+ 0x16c9a02c => "rpc_s_unknown_if",
+ 0x16c9a02d => "rpc_s_unsupported_type",
+ 0x16c9a030 => "rpc_s_cancel_timeout",
+ 0x16c9a031 => "rpc_s_call_cancelled",
+ 0x16c9a036 => "rpc_s_connection_closed",
+ 0x16c9a041 => "rpc_s_connect_timed_out",
+ 0x16c9a042 => "rpc_s_connect_rejected",
+ 0x16c9a043 => "rpc_s_network_unreachable",
+ 0x16c9a044 => "rpc_s_connect_no_resources",
+ 0x16c9a045 => "rpc_s_rem_network_shutdown",
+ 0x16c9a046 => "rpc_s_too_many_rem_connects",
+ 0x16c9a047 => "rpc_s_no_rem_endpoint",
+ 0x16c9a048 => "rpc_s_rem_host_down",
+ 0x16c9a049 => "rpc_s_host_unreachable",
+ 0x16c9a04a => "rpc_s_access_control_info_inv",
+ 0x16c9a04b => "rpc_s_loc_connect_aborted",
+ 0x16c9a04c => "rpc_s_connect_closed_by_rem",
+ 0x16c9a04d => "rpc_s_rem_host_crashed",
+ 0x16c9a074 => "rpc_s_fault_addr_error",
+ 0x16c9a075 => "rpc_s_fault_context_mismatch",
+ 0x16c9a076 => "rpc_s_fault_fp_div_by_zero",
+ 0x16c9a077 => "rpc_s_fault_fp_error",
+ 0x16c9a078 => "rpc_s_fault_fp_overflow",
+ 0x16c9a079 => "rpc_s_fault_fp_underflow",
+ 0x16c9a07a => "rpc_s_fault_ill_inst",
+ 0x16c9a07b => "rpc_s_fault_int_div_by_zero",
+ 0x16c9a07c => "rpc_s_fault_int_overflow",
+ 0x16c9a07d => "rpc_s_fault_invalid_bound",
+ 0x16c9a07e => "rpc_s_fault_invalid_tag",
+ 0x16c9a07f => "rpc_s_fault_pipe_closed",
+ 0x16c9a080 => "rpc_s_fault_pipe_comm_error",
+ 0x16c9a081 => "rpc_s_fault_pipe_discipline",
+ 0x16c9a082 => "rpc_s_fault_pipe_empty",
+ 0x16c9a083 => "rpc_s_fault_pipe_memory",
+ 0x16c9a084 => "rpc_s_fault_pipe_order",
+ 0x16c9a085 => "rpc_s_fault_remote_comm_failure",
+ 0x16c9a086 => "rpc_s_fault_remote_no_memory",
+ 0x16c9a087 => "rpc_s_fault_unspec",
+ 0x16c9a0a8 => "rpc_s_no_ns_permission",
+ 0x16c9a0b5 => "rpc_s_no_more_bindings",
+ 0x16c9a113 => "rpc_s_fault_user_defined",
+ 0x16c9a116 => "rpc_s_fault_tx_open_failed",
+ 0x16c9a16e => "rpc_s_fault_codeset_conv_error",
+ 0x16c9a170 => "rpc_s_fault_no_client_stub",
+ 0x1c000001 => "nca_s_fault_int_div_by_zero",
+ 0x1c000002 => "nca_s_fault_addr_error",
+ 0x1c000003 => "nca_s_fault_fp_div_zero",
+ 0x1c000004 => "nca_s_fault_fp_underflow",
+ 0x1c000005 => "nca_s_fault_fp_overflow",
+ 0x1c000006 => "nca_s_fault_invalid_tag",
+ 0x1c000007 => "nca_s_fault_invalid_bound",
+ 0x1c000008 => "nca_rpc_version_mismatch",
+ 0x1c000009 => "nca_unspec_reject",
+ 0x1c00000a => "nca_s_bad_actid",
+ 0x1c00000b => "nca_who_are_you_failed",
+ 0x1c00000c => "nca_manager_not_entered",
+ 0x1c00000d => "nca_s_fault_cancel",
+ 0x1c00000e => "nca_s_fault_ill_inst",
+ 0x1c00000f => "nca_s_fault_fp_error",
+ 0x1c000010 => "nca_s_fault_int_overflow",
+ 0x1c000014 => "nca_s_fault_pipe_empty",
+ 0x1c000015 => "nca_s_fault_pipe_closed",
+ 0x1c000016 => "nca_s_fault_pipe_order",
+ 0x1c000017 => "nca_s_fault_pipe_discipline",
+ 0x1c000018 => "nca_s_fault_pipe_comm_error",
+ 0x1c000019 => "nca_s_fault_pipe_memory",
+ 0x1c00001a => "nca_s_fault_context_mismatch",
+ 0x1c00001b => "nca_s_fault_remote_no_memory",
+ 0x1c00001c => "nca_invalid_pres_context_id",
+ 0x1c00001d => "nca_unsupported_authn_level",
+ 0x1c00001f => "nca_invalid_checksum",
+ 0x1c000020 => "nca_invalid_crc",
+ 0x1c000021 => "ncs_s_fault_user_defined",
+ 0x1c000022 => "nca_s_fault_tx_open_failed",
+ 0x1c000023 => "nca_s_fault_codeset_conv_error",
+ 0x1c000024 => "nca_s_fault_object_not_found",
+ 0x1c000025 => "nca_s_fault_no_client_stub",
+ 0x1c010002 => "nca_op_rng_error",
+ 0x1c010003 => "nca_unk_if",
+ 0x1c010006 => "nca_wrong_boot_time",
+ 0x1c010009 => "nca_s_you_crashed",
+ 0x1c01000b => "nca_proto_error",
+ 0x1c010013 => "nca_out_args_too_big",
+ 0x1c010014 => "nca_server_too_busy",
+ 0x1c010017 => "nca_unsupported_type"
+ }
+
+ def initialize(*args)
+ super(*args)
+ end
+
+ # returns an error string if it exists, otherwise just the error code
+ def get_error(error)
+ string = ''
+ if @@errors[error]
+ string = @@errors[error]
+ else
+ string = sprintf('0x%.8x',error)
+ end
+ end
end
class Fault < Error
- attr_accessor :fault
- def to_s
- 'DCERPC FAULT => ' + get_error(self.fault)
- end
+ attr_accessor :fault
+ def to_s
+ 'DCERPC FAULT => ' + get_error(self.fault)
+ end
end
class NoResponse < Error
- def to_s
- 'no response from dcerpc service'
- end
+ def to_s
+ 'no response from dcerpc service'
+ end
end
class InvalidPacket < Error
- def initialize(message = nil)
- @message = message
- end
-
- def to_s
- str = 'Invalid packet.'
- if (@message)
- str += " #{@message}"
- end
- end
+ def initialize(message = nil)
+ @message = message
+ end
+
+ def to_s
+ str = 'Invalid packet.'
+ if (@message)
+ str += " #{@message}"
+ end
+ end
end
end
end
end