module PWN::Plugins::BusPirate

def self.authors

def self.authors
st.pentest@0dayinc.com>

def self.connect(opts = {})

def self.connect(opts = {})
al.connect(opts)
 => e
ate_obj: bus_pirate_obj) unless bus_pirate_obj.nil?

def self.connect_via_screen(opts = {})

def self.connect_via_screen(opts = {})
block_dev].to_s if File.exist?(
.to_s
v/ttyUSB0'
/bin/screen'
reen_bin} not found." unless File.exist?(screen_bin)
 => e

def self.disconnect(opts = {})

def self.disconnect(opts = {})
al.disconnect(
[:bus_pirate_obj]
 => e

def self.help

def self.help
via_screen(
tional serial block device path (defaults to /dev/ttyUSB0)'
 #{self}.connect(
tional serial block device path (defaults to /dev/ttyUSB0)',
l (defaults to 9600)',
tional (defaults to 8)',
tional (defaults to 1)',
nal (defaults to SerialPort::NONE)',
'optional (defaults to SerialPort::HARD) SerialPort::NONE|SerialPort::SOFT|SerialPort::HARD'
e(
: 'required - bus_pirate_obj returned from #connect method'
d - bus pirate mode to invoke'
ct(
: 'required - bus_pirate_obj returned from #connect method'

def self.init_mode(opts = {})

)
mode: 'required - bus pirate mode to invoke'
bus_pirate_obj: 'required - bus_pirate_obj returned from #connect method'
PWN::Plugins::BusPirate.init_mode(
Supported Method Parameters::
def self.init_mode(opts = {})
pts[:bus_pirate_obj]
.to_s.strip.chomp.scrub.upcase
nary mode
rial.request(serial_obj: bus_pirate_obj, payload: [0x00])
PI mode
rial.request(serial_obj: bus_pirate_obj, payload: [0x01])

rial.request(serial_obj: bus_pirate_obj, payload: [0x02])
e
rial.request(serial_obj: bus_pirate_obj, payload: [0x03])
ode
rial.request(serial_obj: bus_pirate_obj, payload: [0x04])
 mode
rial.request(serial_obj: bus_pirate_obj, payload: [0x05])
te
rial.request(serial_obj: bus_pirate_obj, payload: [0x0F])
f-tests
rial.request(serial_obj: bus_pirate_obj, payload: [0x10])
ode: #{mode}"
al.response(serial_obj: bus_pirate_obj)
 => e