Class: HardsploitAPI_SPI_SNIFFER
- Inherits:
-
Object
- Object
- HardsploitAPI_SPI_SNIFFER
- Defined in:
- lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb
Instance Method Summary collapse
-
#initialize(mode:, sniff:) ⇒ HardsploitAPI_SPI_SNIFFER
constructor
A new instance of HardsploitAPI_SPI_SNIFFER.
- #mode ⇒ Object
- #mode=(mode) ⇒ Object
- #odds_and_evens(tab, return_odds) ⇒ Object
- #sniff ⇒ Object
- #sniff=(sniff) ⇒ Object
-
#spi_receive_available_data ⇒ Object
-
Return data received.
-
- #spi_SetSettings ⇒ Object
Constructor Details
#initialize(mode:, sniff:) ⇒ HardsploitAPI_SPI_SNIFFER
Returns a new instance of HardsploitAPI_SPI_SNIFFER.
13 14 15 16 17 18 19 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 13 def initialize(mode:,sniff:) #to be sure the singleton was initialize HardsploitAPI.instance.connect self.mode=mode self.sniff=sniff spi_SetSettings end |
Instance Method Details
#mode ⇒ Object
21 22 23 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 21 def mode return @mode end |
#mode=(mode) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 27 def mode=(mode) if ( mode < 0 ) or ( mode > 3 ) then raise HardsploitAPI::ERROR::SPIWrongMode else @mode = mode end end |
#odds_and_evens(tab, return_odds) ⇒ Object
54 55 56 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 54 def odds_and_evens(tab, return_odds) tab.select.with_index{|_, i| return_odds ? i.odd? : i.even?} end |
#sniff ⇒ Object
24 25 26 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 24 def sniff return @sniff end |
#sniff=(sniff) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 34 def sniff=(sniff) case sniff when HardsploitAPI::SPISniffer::MISO; @sniff = sniff when HardsploitAPI::SPISniffer::MOSI; @sniff = sniff when HardsploitAPI::SPISniffer::MISO_MOSI; @sniff = sniff else raise HardsploitAPI::ERROR::SPIWrongMode end end |
#spi_receive_available_data ⇒ Object
-
Return data received
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 59 def spi_receive_available_data packet = Array.new packet.push 0 #low byte of lenght of trame refresh automaticly before send by usb packet.push 0 #high byte of lenght of trame refresh automaticly before send by usb packet.push HardsploitAPI.lowByte(word:HardsploitAPI::USB_COMMAND::FPGA_COMMAND) packet.push HardsploitAPI.highByte(word:HardsploitAPI::USB_COMMAND::FPGA_COMMAND) packet.push 0x50 #Command RAW COMMUNICATION TO FPGA FIFO packet.push 0x20 #Command receive available data #remove header (4 bytes 2 for size 2 for type of command) result = HardsploitAPI.instance.sendAndReceiveDATA(packet, 200).drop(4) #if half a simple array, if fullduplex first item -> an array of MISO and second array -> an array of MOSI case @sniff when HardsploitAPI::SPISniffer::MISO,HardsploitAPI::SPISniffer::MOSI return result else myresult = Array.new myresult.push odds_and_evens(result,true) myresult.push odds_and_evens(result,false) return myresult end end |
#spi_SetSettings ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/HardsploitAPI/Modules/SPI_SNIFFER/HardsploitAPI_SPI_SNIFFER.rb', line 43 def spi_SetSettings packet = HardsploitAPI.prepare_packet packet.push 0x10 #Command change mode packet.push @mode + (@sniff<<6) #Add mode begin HardsploitAPI.instance.sendPacket packet rescue raise HardsploitAPI::ERROR::USB_ERROR end end |