My Project List

My Project List

Team RuCTF is the annual open CTF challenge in information security among teams from russian universities. RuCTF started out in 2008 and was the first challange of such kind in Russia. Now it consists of two phases: quals and finals. Quals are remote, finals are local (USU, Ekaterinburg). My roles: task/service developer. RuCTFE is RuCTF Extended to the edge of the world. Teams from universities …

Feb 2, 2013 · tswr
Select

Select

my $paddr = inet_aton($addr); croak "Cannot resolve '$addr'" if (!defined $paddr); socket SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp') or croak 'Cannot create socket'; connect SOCK, sockaddr_in($port, $paddr) or croak "Cannot connect to server '$server'"; send SOCK, "$query\r\n", 0; vec($rin, fileno(SOCK), 1) = 1; do { ($nfound) = select($rout = $rin, '', '', $timeout); croak 'Select() error' …

Feb 2, 2013 · tswr
Raw Sockets

Raw Sockets

sub sendRaw($$$) { use constant IPPROTO_RAW => 255; my ($destination, $dport, $packet) = @_; eval { socket(SOCKET, PF_INET, SOCK_RAW, IPPROTO_RAW); my $paddr = sockaddr_in($dport, inet_aton($destination)); send(SOCKET, $packet, 0, $paddr); }; if ($@) { print "Error occured: $@"; } } sub assembleRawUdp($$$$$) { my ($destination, $dport, $source, $sport, $data) = @_; ############# # IP HEADER # …

Feb 2, 2013 · tswr
Tk

Tk

#!/usr/bin/perl use Tk; sub Exit { exit(0); } sub showHelp { $tl = $root->Toplevel; $tl->title("Help"); $tl->Label(-text => '(c) tswr')->pack(); } $root = new MainWindow(); $root->title("hello Tk!"); $root->geometry("400x300"); $menu = $root->Menu; $root->configure(-menu => $menu); $filemenu = $menu->cascade(-label => '~File'); $filemenu->command(-label => 'E~xit', -command => \&Exit); $helpmenu = …

Feb 2, 2013 · tswr
Hamming Code

Hamming Code

Source <html> <head> <title>Snippet for "Hamming code"</title> <style> body { padding: 5px; background-color: lightgoldenrodyellow } </style> <script type="text/javascript"> function copy() { var input = document.getElementById('input'); var output = document.getElementById('output'); output.value = input.value; } </script> </head> <body> <h4>Snippet for "Hamming code"</h4> <input type='text' …

Feb 2, 2013 · tswr
IPC

IPC

alarm use Socket; eval { local $SIG{ALRM} = sub { die "time is out" }; alarm 3; socket SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'); connect SOCK, sockaddr_in(81, inet_aton("microsoft.com")) or die "connect failed"; alarm 0; send SOCK, "GET / HTTP/1.0\n\n", 0; print while <SOCK>; shutdown SOCK, 2; }; print "$@\n" if $@; die $warnings = 0; $SIG{__WARN__} = sub { print @_ if $warnings }; …

Feb 2, 2013 · tswr