48 lines
1.3 KiB
Ruby
Executable File
48 lines
1.3 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
$:.unshift(File.dirname(__FILE__))
|
|
require "Lorcon"
|
|
require "pp"
|
|
|
|
pp Lorcon.version
|
|
pp Lorcon.drivers
|
|
|
|
# Beacon frame from tx.c
|
|
packet = [
|
|
0x80, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, # dur ffff
|
|
0xff, 0xff, 0x00, 0x0f, 0x66, 0xe3, 0xe4, 0x03,
|
|
0x00, 0x0f, 0x66, 0xe3, 0xe4, 0x03, 0x00, 0x00, # 0x0000 - seq no.
|
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, # BSS timestamp
|
|
0x64, 0x00, 0x11, 0x00, 0x00, 0x0f, 0x73, 0x6f,
|
|
0x6d, 0x65, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x63,
|
|
0x6c, 0x65, 0x76, 0x65, 0x72, 0x01, 0x08, 0x82,
|
|
0x84, 0x8b, 0x96, 0x24, 0x30, 0x48, 0x6c, 0x03,
|
|
0x01, 0x01, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00,
|
|
0x2a, 0x01, 0x05, 0x2f, 0x01, 0x05, 0x32, 0x04,
|
|
0x0c, 0x12, 0x18, 0x60, 0xdd, 0x05, 0x00, 0x10,
|
|
0x18, 0x01, 0x01, 0xdd, 0x16, 0x00, 0x50, 0xf2,
|
|
0x01, 0x01, 0x00, 0x00, 0x50, 0xf2, 0x02, 0x01,
|
|
0x00, 0x00, 0x50, 0xf2, 0x02, 0x01, 0x00, 0x00,
|
|
0x50, 0xf2, 0x02
|
|
].pack('C*')
|
|
|
|
|
|
# Configure the card for reliable injection
|
|
|
|
tx = Lorcon::Device.new('ath0', 'madwifing')
|
|
tx.fmode = "INJECT"
|
|
tx.channel = 11
|
|
tx.txrate = 2
|
|
tx.modulation = "DSSS"
|
|
|
|
sa = Time.now.to_f
|
|
tx.write(packet, 500, 0)
|
|
ea = Time.now.to_f - sa
|
|
|
|
sb = Time.now.to_f
|
|
500.times { tx.write(packet, 1, 0) }
|
|
eb = Time.now.to_f - sb
|
|
|
|
$stdout.puts "Sent 500 packets (C) in #{ea.to_s} seconds"
|
|
$stdout.puts "Sent 500 packets (Ruby) in #{eb.to_s} seconds"
|