Module: PWN::Plugins::RFIDler

Defined in:
lib/pwn/plugins/rfidler.rb

Overview

This plugin is used for interacting with an RFIDler using the the screen command as a terminal emulator.

Class Method Summary collapse

Class Method Details

.authorsObject

Author(s)

0day Inc. <[email protected]>



38
39
40
41
42
# File 'lib/pwn/plugins/rfidler.rb', line 38

public_class_method def self.authors
  "AUTHOR(S):
    0day Inc. <[email protected]>
  "
end

.connect_via_screen(opts = {}) ⇒ Object

Supported Method Parameters

PWN::Plugins::RFIDler.connect_via_screen(

screen_bin: 'optional - defaults to /usr/bin/screen'
block_dev: 'optional - serial block device path (defaults to /dev/ttyUSB0)'

)



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pwn/plugins/rfidler.rb', line 14

public_class_method def self.connect_via_screen(opts = {})
  block_dev = opts[:block_dev].to_s if File.exist?(
    opts[:block_dev].to_s
  )

  block_dev = '/dev/ttyUSB0' if opts[:block_dev].nil?

  if opts[:screen_bin].nil?
    screen_bin = '/usr/bin/screen'
  else
    screen_bin = opts[:screen_bin].to_s.strip.chomp.scrub
  end

  raise "ERROR: #{screen_bin} not found." unless File.exist?(screen_bin)

  screen_params = "#{block_dev} 9600 8 N 1"
  screen_cmd = "#{screen_bin} #{screen_params}"
  system(screen_cmd)
rescue StandardError => e
  raise e
end

.helpObject

Display Usage for this Module



46
47
48
49
50
51
52
53
54
55
# File 'lib/pwn/plugins/rfidler.rb', line 46

public_class_method def self.help
  puts "USAGE:
    #{self}.connect_via_screen(
      screen_bin: 'optional - defaults to /usr/bin/screen'
      block_dev: 'optional serial block device path (defaults to /dev/ttyUSB0)'
    )

    #{self}.authors
  "
end