require 'ronin/network/udp/proxy'
require 'hexdump'
Ronin::Network::UDP::Proxy.start(:port => 1194, :server => ['meow.com', 1194]) do |proxy|
address = lambda { |socket|
addrinfo = socket.peeraddr
"#{addrinfo[3]}:#{addrinfo[1]}"
}
hex = Hexdump::Dumper.new
proxy.on_client_data do |client,server,data|
puts "#{address[client]} -> #{proxy}"
hex.dump(data)
end
proxy.on_server_data do |client,server,data|
proxy.close! if data =~ /QUIT/
puts "#{address[client]} <- #{proxy}"
hex.dump(data)
end
end
results in:
$ ruby udp_proxy.rb
<path>/gems/ruby-1.9.3-p194/gems/ronin-support-0.5.0.rc2/lib/ronin/network/udp/proxy.rb:118:in `recv': undefined method `recv' for nil:NilClass (NoMethodError)
from <path>/.rvm/gems/ruby-1.9.3-p194/gems/ronin-support-0.5.0.rc2/lib/ronin/network/udp/proxy.rb:67:in `poll'
from <path>/.rvm/gems/ruby-1.9.3-p194/gems/ronin-support-0.5.0.rc2/lib/ronin/network/proxy.rb:190:in `listen'
from <path>/.rvm/gems/ruby-1.9.3-p194/gems/ronin-support-0.5.0.rc2/lib/ronin/network/proxy.rb:155:in `start'
from <path>/.rvm/gems/ruby-1.9.3-p194/gems/ronin-support-0.5.0.rc2/lib/ronin/network/proxy.rb:142:in `start'
from udp_proxy.rb:4:in `<main>'
Consider:
results in: