Skip to content

Instantly share code, notes, and snippets.

@postmodern
Created March 25, 2012 01:17
Show Gist options
  • Save postmodern/2190595 to your computer and use it in GitHub Desktop.
Save postmodern/2190595 to your computer and use it in GitHub Desktop.
Example of a Ronin::Network::UDP::Proxy
require 'ronin/network/udp/proxy'
require 'hexdump'
Ronin::Network::UDP::Proxy.start([1337, 'localhost'], ['localhost', 1338]) do |proxy|
format_addr = lambda { |(socket,(host,port))|
"#{host}:#{port}"
}
proxy.on(:client_data) do |client,server,data|
puts "#{format_addr[client]} -> #{proxy}"
data.hexdump
end
proxy.on(:client_connect) do |client|
puts "#{format_addr[client]} -> #{proxy} [connected]"
end
proxy.on(:client_disconnect) do |client,server|
puts "#{format_addr[client]} <- #{proxy} [disconnected]"
end
proxy.on(:server_data) do |client,server,data|
case data
when /kill/ then proxy.close!
when /quit/ then proxy.reset!
end
puts "#{format_addr[client]} <- #{proxy}"
data.hexdump
end
proxy.on(:server_connect) do |client,server|
puts "#{format_addr[client]} <- #{proxy} [connected]"
end
proxy.on(:server_disconnect) do |client,server|
puts "#{format_addr[client]} <- #{proxy} [disconnected]"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment