Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/Server/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/Server/ProtocolSTRUCTURE.pm

package Server::ProtocolSTRUCTURE;

use strict;
eval("use MIME::Base64");

sub new {

   my $class = shift;
   my $self  = {};
   bless($self,$class);
   return($self);

}

#***********************************************************************

sub server_send {

   my $self = shift;
   my $obj  = shift;
   my $sock = shift;

   $obj     = $self->serialize($obj);
   print $sock $obj . "\n";

}

#***********************************************************************

sub client_send {

   my $self = shift;
   my $obj  = shift;
   my $sock = shift;

   $obj     = $self->serialize($obj);
   print $sock $obj . "\n";

}

#**********************************************************************

sub server_receive {

   my $self = shift;
   my $sock = shift;

   my $erg  = "";
   my $o;

   while (0 == 0) {
      if (eof($sock)) {
         return("___EOF___",0);
      } else {
         $o = <$sock>;
      }
      last if ($o eq "\n");
      $erg = $erg . $o;
   }

   $o = 0;
   $o = $self->deserialize($erg);
   return($o,1) if ($o);
   return("___EOF___",0);

}

#**********************************************************************

sub client_receive {
   my $self = shift;
   my $sock = shift;

   return($self->server_receive($sock));

}

#**********************************************************************

sub serialize {

   my $self = shift;
   my $obj  = shift;

   $obj = $self->serialize_1($obj);

   my $text = "";
   my $ll; my $o;
   foreach $o (@$obj) {
      my $ll = length($o);
      $text  = $text . length($ll) . $ll . $o;
   }

   return(encode_base64($text));

}

#**********************************************************************

sub serialize_1 {

   my $self = shift;
   my $obj  = shift;

   my $ee   = [];
   my $o; my $o1; my @ee1;

   if (ref($obj) eq "ARRAY") {
      push(@$ee,"A".$#{$obj});
      foreach $o (@$obj) {
         $o = $self->serialize_1($o);
         foreach $o1 (@$o) {
            push(@$ee,$o1);
         }
      }
   }
      
   elsif (ref($obj) eq "HASH") {
      @ee1 = keys %$obj;
      push(@$ee,"H".$#ee1);
      foreach $o (@ee1) {
         push(@$ee,$o);
         $o = $self->serialize_1($obj->{$o});
         foreach $o1 (@$o) {
            push(@$ee,$o1);
         }
      }
   }

   else {
      $ee = ["S",$obj];
   }

   return($ee);

}
      
#************************************************************************

sub deserialize {

   my $self = shift;
   my $text = shift;

   $text = decode_base64($text);

   my $ee = []; my $ll1; my $ll2;
   while ($text) {
      $ll1  = substr($text,0,1);
      $text = substr($text,1);
      $ll2  = substr($text,0,$ll1);
      $text = substr($text,$ll1);
      push(@$ee,substr($text,0,$ll2));
      $text = substr($text,$ll2);
   }

   ($ll1,$ee) = $self->deserialize_1($ee);
   return($ll1);

}

#************************************************************************

sub deserialize_1 {

   my $self = shift;
   my $ee   = shift;

   my $o = shift(@$ee);
   my $o1; my $zaehler; my $pointer; my $erg;

   if (substr($o,0,1) eq "S") {
      return(shift(@$ee),$ee);
   }

   elsif (substr($o,0,1) eq "A") {
      $erg     = [];
      $o       = substr($o,1);
      $zaehler = -1;
      while ($zaehler < $o) {
         ($o1,$ee) = $self->deserialize_1($ee);
         push(@$erg,$o1);
         $zaehler = $zaehler + 1;
      }
      return($erg,$ee);
   }
   
   elsif (substr($o,0,1) eq "H") {
      $erg     = {};
      $o       = substr($o,1);
      $zaehler = -1;
      while ($zaehler < $o) {
         $pointer  = shift(@$ee);
         ($o1,$ee) = $self->deserialize_1($ee);
         $erg->{$pointer} = $o1;
         $zaehler = $zaehler + 1;
      }
      return($erg,$ee);
   }

}   

1;


bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net