Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/web-klick.de/dsh/90_akt/PPLTest.old/

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/90_akt/PPLTest.old/MMIStatus1.pm

package PPLTest::MMIStatus;

use strict;
use Server::BlackBoard;
use PPLTest::Buffer_Semantic;
use Data::Dumper;
use MIME::Base64;

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

sub new {

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

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

sub event {

   my $self = shift;
   my $v    = shift;
   my $t    = shift;
   my $o; my $o1; my $o2; my $VAR1;
   
   my $erg       = "___INTERACTIVE___";
   my $semantic  = PPLTest::Buffer_Semantic->new($v->{'data'});

   if ($v->{'socket_exists'} == 0) {
      return($erg);
   }

   elsif ($t =~ /^sync$/i) {
      my $out = Server::BlackBoard->new($PAR::in_db->{$v->{'data'}});
      $out->msg("getbytes");
      $erg = "";
   }   

   elsif ($t =~ /^KeyPressShort/i) {
      my $bytefolge = $semantic->send($t);
      my $out = Server::BlackBoard->new($PAR::in_db->{$v->{'data'}});
      $out->msg($bytefolge);
#      $out->msg("getbytes");
      $erg = "";
   }

   elsif ($t =~ /^SoftKey.(.*)$/i) {
      my $mmi = $v->{'mmi'};
      $t = $mmi->{'matrix'}->{$1};
      my $bytefolge = $semantic->send($t);
      my $out = Server::BlackBoard->new($PAR::in_db->{$v->{'data'}});
      $out->msg($bytefolge);
#      $out->msg("getbytes");
      $erg = "";
   }

   elsif ($t =~ /^display$/i) {
      my $in       = Server::BlackBoard->new($PAR::out_db->{$v->{'data'}},
                                             $v->{'dblast'});
      my $messages   = $in->get();
      $v->{'dblast'} = $in->last();
      $erg         = "";
      foreach $o (reverse @$messages) {
         print "BUFFER MESSAGE  $o->[1]\n";
         if ($o->[1] =~ /^(05|1A)(..)(.+)$/i) {
            $erg = $3 . "-" . $2 . "-" . $o->[0];
              #  processdescr - statedescr - eingangszeit
         }
      }
   }
      
   return($erg);

}

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

sub status {

   my $self  = shift;
   my $v     = shift;
   my $t     = shift;
   my $e     = shift;  #  Ergebnis
   my $mmi   = $v->{'mmi'};
   my $z     = time();
   unshift(@{$mmi->{'trace'}},[$t,$e,$z]);

   if (!($mmi->{'screen'})) {
      $mmi->{'screen'}    = {  'name'  => "einschalten" };
      $mmi->{'partition'} = "basispartition";
   }
   my $screen; my $fkt;
   
   while (0 == 0) {
      $screen = $mmi->{'screen'};
      $fkt    = $v->{'data'} . "_" . $mmi->{'screen'}->{'name'};
      eval("\$self->$fkt(\$v,\$mmi,\$screen,\$t,\$e,\$z)");
      if ($@) {
         $fkt = "common_" . $mmi->{'screen'}->{'name'};
         eval("\$self->$fkt(\$v,\$mmi,\$screen,\$t,\$e,\$z)");
      }
      last if (!($screen->{'redirect'}));
      print "REDIRECT-SCREEN: $screen->{'redirect'}\n";
      $mmi->{'screen'} = $screen->{'redirect'};
      delete ($screen->{'redirect'});
      $mmi->{'screen'}->{'zeit'} = $z;
   }
   
   $screen->{'zeit'} = $z;
   my $mmi1 = {%$mmi};
   delete ($mmi1->{'trace'});
   $v->{'log'} = $v->{'log'} . Dumper($mmi1);

   
}

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

sub display {

   my $self      = shift;
   my $title     = shift;
   my $partition = shift;
   my $e         = shift;
   my $v         = shift;
   my $o;
   
   my $semantic  = PPLTest::Buffer_Semantic->new($v->{'data'});
   my $var_map   = $semantic->var_map();

print "ERG: $e\n";

   if ($e =~ /^(.*\-.*)\-(.*)$/) {
      $o = $1;
      if (lc($o) ne lc($var_map->{$title} . "-" . $var_map->{$partition})) {
         $v->{'result'}  =  1009;
      }
   }
   
   elsif ($e =~ /^(.*\-.*)$/) {
      $o = $1;
      if (lc($o) ne lc($title . "-" . $partition)) {
         $v->{'result'}  =  1009;
      }
   }
   
   elsif ($e !~ /^OK$/i) {
      $v->{'result'}  =  1009;
   }
   
   if ($v->{'result'} == 1009) {
      $v->{'remark'}  =  "Wrong screen";
      $v->{'weight'}  =  50;
      $v->{'log'}     =  "ERROR: Wrong screen:\nIST:  " . $o .
                          "\nSOLL: " . $title . "-" . $partition . "\n\n\n" .
                         $v->{'log'};

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

sub common_einschalten {

   my $self = shift;
   my ($v,$mmi,$screen,$t,$e,$z) = @_;
   
   if ($t =~ /^KeyPressShort.EINAUS/i) {
      $screen = { 'name' => 'sprachauswahl' };
   }
   
   elsif ($t =~ /^DISPLAY$/i) {
      $self->display("BITTE_GERAET_EINSCHALTEN","BASISPARTITION",$e,$v);
   }
      
}

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

sub common_sprachauswahl {

   my $self = shift;
   my ($v,$mmi,$screen,$t,$e,$z) = @_;
   $screen->{'sprache'}  ||= $mmi->{'sprache'} || 'deutsch';

   my $sprachliste = $self->rotate([keys %{$PAR::sprache->{$v->{'data'}}}]);
                     
   if ($z - $screen->{'zeit'} > 4099887766) {
      $screen->{'redirect'} = { 'name' => 'sprachauswahl' };
   }
   elsif ($t =~ /^KeyPressShort\.OK$/i) {
      $mmi->{'sprache'} = $screen->{'sprache'};
      $mmi->{'screen'}  = { 'name'    => 'laenderauswahl' };
   }
   elsif ($t =~ /^KeyPressShort.AUF$/i) {
      $screen->{'sprache'} = $sprachliste->{$screen->{'sprache'}};
   }
   elsif ($t =~ /^KeyPressShort.AB$/i) {
      $screen->{'sprache'} = $sprachliste->{".".$screen->{'sprache'}};
   }

   elsif ($t =~ /^DISPLAY$/i) {
      $self->display("BITTE_GERAET_EINSCHALTEN","BASISPARTITION",$e,$v);
   }

   
}

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

sub common_laenderauswahl {

   my $self = shift;
   my ($v,$mmi,$screen,$t,$e,$z) = @_;
   $screen->{'land'}    ||= $mmi->{'land'} || "Deutschland";

   my $laenderliste = $self->rotate(
          $PAR::sprache->{$v->{'data'}}->{$screen->{'land'}});
          
   if ($#{[keys %$laenderliste]} == 1) {
      $screen->{'redirect'} = { 'name' => "datumauswahl" };
   }
      
   elsif    ($t =~ /^KeyPressShort.OK$/i) {
      $mmi->{'land'}    = $screen->{'land'};
      $mmi->{'screen'}  = { 'name'    => 'datumauswahl',
                            'datum'   => $mmi->{'datum'} || [1,1,2010],
                            'cursor'  => 0,
                          };
   }
   elsif ($t =~ /^KeyPressShort.AUF$/i) {
      $screen->{'land'} = $laenderliste->{$screen->{'land'}};
   }
   elsif ($t =~ /^KeyPressShort.AB$/i) {
      $screen->{'land'} = $laenderliste->{".".$screen->{'land'}};
   }
   
   elsif ($t =~ /^DISPLAY$/i) {
      $self->display("BITTE_GERAET_EINSCHALTEN","BASISPARTITION",$e,$v);
   }


}

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

sub common_datumauswahl {

   my $self = shift;
   my ($v,$mmi,$screen,$t,$e,$z) = @_;
   $screen->{'datum'}   ||= $mmi->{'datum'} || [1,1,2010];
   $screen->{'cursor'}  ||= 0;
   
   if    ($t =~ /^KeyPressShort.OK$/i) {
      if ($screen->{'cursor'} == 2) {
         $mmi->{'datum'}    = $screen->{'datum'};
         $mmi->{'screen'}   = { 'name'      => 'tageszeitauswahl' };
      } else {
         $screen->{'cursor'} = $screen->{'cursor'} + 1;
      }
   }
   elsif ($t =~ /^KeyPressShort.AUF$/i) {
      $screen->{'datum'}->[$screen->{'cursor'}] += 1;
   }
   elsif ($t =~ /^KeyPressShort.AB$/i) {
      $screen->{'datum'}->{$screen->{'cursor'}} -= 1;
   }
   
   elsif ($t =~ /^DISPLAY$/i) {
      $self->display("BITTE_GERAET_EINSCHALTEN","BASISPARTITION",$e,$v);
   }

}

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

sub common_tageszeitauswahl {

   my $self = shift;
   my ($v,$mmi,$screen,$t,$e,$z) = @_;
   $screen->{'tageszeit'} ||= $mmi->{'tageszeit'} || [0,0];
   $screen->{'cursor'}    ||= 0;
   
   if ($z - $screen->{'zeit'} > 45) {
      $screen->{'redirect'} = { 'name' => 'sprachauswahl' };
   }

   elsif ($t =~ /^KeyPressShort.OK$/i) {
      if ($screen->{'cursor'} == 1) {
         $mmi->{'tageszeit'} = $screen->{'tageszeit'};
         $mmi->{'screen'}    = { 'name' => 'tageszeitanzeige' };
      } else {
         $screen->{'cursor'} = $screen->{'cursor'} + 1;
      }
   }
   
   elsif ($t =~ /^DISPLAY$/i) {
      $self->display("BITTE_GERAET_EINSCHALTEN","BASISPARTITION",$e,$v);
   }

}

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

sub common_tageszeitanzeige {

   my $self = shift;
   my ($v,$mmi,$screen,$t,$e,$z) = @_;
   $screen->{'tageszeitanzeige'}   ||= $mmi->{'tageszeitanzeige'} || "12h";
   $screen->{'cursor'}    ||= 0;
   
   my $anzeigeliste = $self->rotate([qw(12h 24h)]);

   if ($z - $screen->{'zeit'} > 145) {
      $screen->{'redirect'} = { 'name' => 'sprachauswahl' };
   }

   elsif ($t =~ /^KeyPressShort.OK$/i) {
      $mmi->{'tageszeitanzeige'}  = $screen->{'tageszeitanzeige'};
      $mmi->{'screen'}   = { 'name' => 'vde0' };
   }
   elsif ($t =~ /^KeyPressShort.AUF$/i) {
      $screen->{'tageszeitanzeige'} = $anzeigeliste->{$screen->{'tageszeitanzeige'}};
   }
   elsif ($t =~ /^KeyPressShort.AB$/i) {
      $screen->{'tageszeitanzeige'} = $anzeigeliste->{".".$screen->{'tageszeitanzeige'}};
   }
   
   elsif ($t =~ /^DISPLAY$/i) {
      $self->display("BITTE_GERAET_EINSCHALTEN","BASISPARTITION",$e,$v);
   }

}

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

sub rotate {

   my $self     = shift;
   my $o1       = shift;
   my $liste    = [@$o1];
   
   my $o2  = shift(@$liste);
   push(@$liste,$o2);
   my $decessor = {};

   while (@$liste) {
      $o1 = $o2;
      $o2 = shift(@$liste);
      $decessor->{$o1}     = $o2;
      $decessor->{".".$o2} = $o1;
   }
   
   print Dumper($decessor);
   
   return($decessor);
      
}


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

<<'UUU';

#-----------------------------------------------------------------

#   sprache: Aktuell angezeigte Sprache

   if ($mmi->{'screen'}->{'name'} eq "Sprachauswahl") {
      if ($t eq "KeyPressShort.OK") {
         $mmi->{'sprache'} = $mmi->{'screen'}->{'sprache'};
         $mmi->{'screen'}  = {
                               'name'   => "Uhrzeiteinstellung",
                               'cursor' => 1,
                               'zeit'   => [0,0,0]
                             };
      }
      if ($t eq "KeyPressShort.AUF"
   }

#------------------------------------------------------------------

#   zeit:   Dreielementiges Feld mit Stunde, Minute, Sekunde
#   cursor: Zeigt das aktive Zeitelement an.
                               
   elsif ($mmi->{'screen'}->{'name'} eq "Uhrzeiteinstellung") {
      if ($t eq "KeyPressShort.OK") {
         if ($mmi->{'screen'}->{'cursor'} == 3) {
            $mmi->{'zeit_initial'} = [@{$mmi->{'screen'}->{'zeit'}}];
            $mmi->{'screen'} = {
                                 'name'   => 'Laendereinstellung',
                               }
         } else {
            $mmi->{'screen'}->{'cursor'} = $mmi->{'screen'}->{'cursor'} + 1;
         }
      }
      elsif ($t eq "KeyPressShort.AUF") {
         $mmi->{'screen'}->{'zeit'}->[$mmi->{'screen'}->{'cursor'}] =
              $mmi->{'screen'}->{'zeit'}->[$mmi->{'screen'}->{'cursor'}] + 1;
      }
      elsif ($t eq "KeyPressShort.DOWN") {
         $mmi->{'screen'}->{'zeit'}->[$mmi->{'screen'}->{'cursor'}] =
              $mmi->{'screen'}->{'zeit'}->[$mmi->{'screen'}->{'cursor'}] - 1;

      }
   }
                               
#------------------------------------------------------------------

   if ($t eq "DISPLAY") {
      my $buffer  = PPLTest::Buffer_Semantic->new($v->{'data'});
      my $var_map = $buffer->var_map();
      if ($e =~ /^(.*)\-(.*)$/) {
         if ($var_map->{$mmi->{'processdescr'}} ne $1 or
             $var_map->{$mmi->{'statedescr'}}   ne $2) {
            $v->{'result'} = 1009;
            $v->{'remark'} = "ERROR. Wrong display.";
            $v->{'weight'} = 1000;
         }
      }
   }    

   if ($t eq "KeyPressShort.OK") {
      $mmi->{'processdescr'} = "BASIS";
      if ($#{$mmi->{'trace'}} == 1) {
         $mmi->{'statedescr'}   = "Willkommen";
        $mmi->{'pin'} = 0;
      }
      elsif ($mmi->{'pin'} == 3) {
         $mmi->{'statedescr'}   = "Uhrzeit";
      }
      elsif ($mmi->{'pin'} < 3) {
         $mmi->{'pin'} = $mmi->{'pin'} + 1;
      }
   }
   
   return($log);
   
}   



<<'UUU';

   if ($t =~ /^GERAET_(.*)$/) {
      return("");
   }
   
   if ($t eq "DISPLAY") {
      $mmi->{'status'} = $e;
   }
   
      $o = $1;
      if (!($v->{'data'})) {
         $v->{'data'} = $o;
         my $in  = Server::BlackBoard->new($PAR::out_db->{$o});
         my $out = Server::BlackBoard->new($PAR::in_db->{$o});
         $in->msg("setcookielock");
         $o1 = 0;
         while ($o1 < 15) {
            $o1 = $o1 + 1;
            $msg = $out->get();
            foreach $o2 (@$msg) {
               if ($o2 =~ s/^cookie//) {
                  if ($o2 eq "lock") {
                     $o2
                  MIME::Base64::base64_decode($o2)
            }
            last if ($o2 =~ /^cookie/);
         }
            last if ($o2 =~ /^cookie/);
         
      }
   }





      
         $soll->{'data'} = $1;
         $soll->{'display'} = "PIN CODE --- Uhrzeit|1 0 0 0";
         $soll->{'start'}  = time();
         $soll->{'statedescr'}      = "Willkommen";
         $soll->{'processdescr'}    = "Basispartition";
      }
      return(1);
   }
   
#-----------------------------------------------------------

# 2. Phasenbestimmung

   if ($soll->{'data'} =~ /(CVAM)/) {
      if (time() - $soll->{'start'} < 45) {
         $soll->{'phase'}    = "Aufheizphase";
      }
      elsif (time() - $soll->{'start'} < 180) {
         $soll->{'phase'}   = "Geraet_spuelt";
      }
      else {
         $soll->{'phase'}   = "Betriebsphase";
      }
   }
   
   return(1) if ($soll->{'phase'} ne "Betriebsphase");

#-----------------------------------------------------------

   if ($t =~ /^(TASTE_UP|OK|TASTE_DOWN)$/) {
      if ($soll->{'display'} =~ /^PIN CODE --- Uhrzeit|(\d) (\d) (\d) (\d)$/) {
         $o1 = $1;
         $o2 = $2;
         $o3 = $3;
         $o4 = $4;
         if ($t eq "TASTE_UP") {
            if ($o1 == 1) { $o2 = $o2 + 1; }
            if ($o1 == 2) { $o3 = $o3 + 1; }
            if ($o1 == 3) { $o4 = $o4 + 1; }
         }
         if ($t eq "TASTE_DOWN") {
            if ($o1 == 1) { $o2 = $o2 - 1; }
            if ($o1 == 2) { $o3 = $o3 - 1; }
            if ($o1 == 3) { $o4 = $o4 - 1; }
         }
         if ($t eq "OK") {
            $o1 = $o1 + 1;
         }
         if ($o2 == 10) { $o2 = 9; }
         if ($o3 == 10) { $o3 = 9; }
         if ($o4 == 10) { $o4 = 9; }
         if ($o2 == -1) { $o2 = 0; }
         if ($o3 == -1) { $o3 = 0; }
         if ($o4 == -1) { $o4 = 0; }
         if ($o1 == 4) {
            $soll->{'display'} = "Sprache|deutsch|...";
         }
         $soll->{'display'} = "PIN CODE --- Uhrzeit|$o1 $o2 $o3 $o4";
         return(1);
      }
   }

   if ($t eq "OK") {
      if ($soll->{'display'} =~ /^PIN CODE --- Uhrzeit|(\d) (\d) (\d) (\d)$/) {
         $o1 = $1;
         $o2 = $2;
         $o3 = $3;
         $o4 = $4;
         $o1 = $o1 + 1;
         $soll->{'display'} = "PIN CODE --- Uhrzeit|$o1 $o2 $o3 $o4";
         return(1);
      }
   }         
    

   if ($t eq "TASTE_UP") {
      if ($soll->{'display'} =~ /^(.*)\:(.*)$/) {
         $o  = $1;
         $o1 = [split("|",$2)];
         $o2 = shift(@$o1);
         push(@$o1,$o2);
         $soll->{'display'} = $o . ":" . join("|",@$o1);
      }
      return(1);
   }

   if ($t eq "TASTE_DOWN") {
      if ($soll->{'display'} =~ /^(.*)\:(.*)$/) {
         $o  = $1;
         $o1 = [split("|",$2)];
         $o2 = pop(@$o1);
         unshift(@$o1,$o2);
         $soll->{'display'} = $o . ":" . join("|",@$o1);
      }
      return(1);
   }

   if ($t eq "TASTE_DOWN") {
      if ($soll->{'display'} =~ /^(.*)\:(.*)$/) {
         $o  = $1;
         $o1 = [split("|",$2)];
         $o2 = pop(@$o1);
         unshift(@$o1,$o2);
         $soll->{'display'} = $o . ":" . join("|",@$o1);
      }
      return(1);
   }


# 3. Getraenketaste gedrueckt und aktiv

   if ($soll->{'data'} =~ /(CVAM)/) {
      if ($t =~ /^GETRAENK_(.*)/) {
         $soll->{'getraenk'} = $1;
         return(1);
      }
   }
   
   
}
UUU

   
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