module PWN::Plugins::Serial
def self.authors
def self.authors st.pentest@0dayinc.com>
def self.connect(opts = {})
def self.connect(opts = {}) block_dev].to_s if File.exist?( .to_s ttyUSB0' if opts[:block_dev].nil? ud].nil? d].to_i s[:data_bits].nil? [:data_bits].to_i s[:stop_bits].nil? [:stop_bits].to_i .to_s.to_sym ort::EVEN ort::MARK ort::ODD ort::SPACE ort::NONE ntrol].to_s.to_sym erialPort::HARD erialPort::SOFT erialPort::NONE alPort.new( _conn] = serial_conn n_thread] = init_session_thread( ial_conn => e obj: serial_obj) unless serial_obj.nil?
def self.disconnect(opts = {})
def self.disconnect(opts = {}) :serial_obj] al_obj[:serial_conn] erial_obj[:session_thread] minate => e
def self.dump_session_data
def self.dump_session_data => e
def self.flush_session_data
def self.flush_session_data r => e
def self.get_line_state(opts = {})
def self.get_line_state(opts = {}) :serial_obj] al_obj[:serial_conn] gnals => e obj: serial_obj) unless serial_obj.nil?
def self.get_modem_params(opts = {})
def self.get_modem_params(opts = {}) :serial_obj] al_obj[:serial_conn] dem_params => e obj: serial_obj) unless serial_obj.nil?
def self.help
def self.help elf}.connect( tional serial block device path (defaults to /dev/ttyUSB0)', l (defaults to 9600)', tional (defaults to 8)', tional (defaults to 1)', nal - :even|:mark|:odd|:space|:none (defaults to :none)', 'optional - :none||:hard||:soft (defaults to :none)' elf}.get_line_state( equired serial_obj returned from #connect method' {self}.get_modem_params( equired serial_obj returned from #connect method' equired serial_obj returned from #connect method', ired - array of bytes OR string to write to serial device (e.g. [0x00, 0x41, 0x90, 0x00] OR \"ATDT+15555555\r\n\"' ( equired serial_obj returned from #connect method' = #{self}.dump_session_data ssion_data ct( equired serial_obj returned from #connect method'
def self.init_session_thread(opts = {})
def self.init_session_thread(opts = {}) :serial_conn] obj session_thread timeout = -1 t_readable s into @session_data, adable bytes if need-be < serial_conn.readchar => e minate
def self.request(opts = {})
def self.request(opts = {}) :serial_obj] yload] al_obj[:serial_conn] .chars if payload.instance_of?(String) byte| (byte) => e obj: serial_obj) unless serial_obj.nil?
def self.response(opts = {})
def self.response(opts = {}) :serial_obj] p_session_data '' do |byte| s#{byte.unpack1('H*')}" .unpack1('H*') npack1 returns 2 bytes instead of one ates to deb0 (that's not a double quote ") b0 is ghetto-hacker-ish. gth == 4 s_byte[1..2] s_byte[-2..-1] sp = "#{hex_esc_raw_resp}\s#{byte_one}" sp = "#{hex_esc_raw_resp}\s#{byte_two}" sp = "#{hex_esc_raw_resp}\s#{this_byte}" esponse array in space-delimited hex hex_esc_raw_resp.upcase.strip.split(/(?=FF)/) ap(&:strip) => e for Next Request