Software: Apache. PHP/5.5.15 uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 SYSTEM Safe-mode: OFF (not secure) E:\xampp\xampp\perl\bin\ drwxrwxrwx |
Viewing file: Select action/file-type: @rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S %0 %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul goto endofperl @rem '; #!perl -w #line 15 use strict; # All the IMAGE_* structures are defined in the WINNT.H file # of the Microsoft Platform SDK. my %subsys = (NATIVE => 1, WINDOWS => 2, CONSOLE => 3, POSIX => 7, WINDOWSCE => 9); unless (0 < @ARGV && @ARGV < 3) { printf "Usage: $0 exefile [%s]\n", join '|', sort keys %subsys; exit; } $ARGV[1] = uc $ARGV[1] if $ARGV[1]; unless (@ARGV == 1 || defined $subsys{$ARGV[1]}) { (my $subsys = join(', ', sort keys %subsys)) =~ s/, (\w+)$/ or $1/; print "Invalid subsystem $ARGV[1], please use $subsys\n"; exit; } my ($record,$magic,$signature,$offset,$size); open EXE, "+< $ARGV[0]" or die "Cannot open $ARGV[0]: $!\n"; binmode EXE; # read IMAGE_DOS_HEADER structure read EXE, $record, 64; ($magic,$offset) = unpack "Sx58L", $record; die "$ARGV[0] is not an MSDOS executable file.\n" unless $magic == 0x5a4d; # "MZ" # read signature, IMAGE_FILE_HEADER and first WORD of IMAGE_OPTIONAL_HEADER seek EXE, $offset, 0; read EXE, $record, 4+20+2; ($signature,$size,$magic) = unpack "Lx16Sx2S", $record; die "PE header not found" unless $signature == 0x4550; # "PE\0\0" die "Optional header is neither in NT32 nor in NT64 format" unless ($size == 224 && $magic == 0x10b) || # IMAGE_NT_OPTIONAL_HDR32_MAGIC ($size == 240 && $magic == 0x20b); # IMAGE_NT_OPTIONAL_HDR64_MAGIC # Offset 68 in the IMAGE_OPTIONAL_HEADER(32|64) is the 16 bit subsystem code seek EXE, $offset+4+20+68, 0; if (@ARGV == 1) { read EXE, $record, 2; my ($subsys) = unpack "S", $record; $subsys = {reverse %subsys}->{$subsys} || "UNKNOWN($subsys)"; print "$ARGV[0] uses the $subsys subsystem.\n"; } else { print EXE pack "S", $subsys{$ARGV[1]}; } close EXE; __END__ =head1 NAME exetype - Change executable subsystem type between "Console" and "Windows" =head1 SYNOPSIS C:\perl\bin> copy perl.exe guiperl.exe C:\perl\bin> exetype guiperl.exe windows =head1 DESCRIPTION This program edits an executable file to indicate which subsystem the operating system must invoke for execution. You can specify any of the following subsystems: =over =item CONSOLE The CONSOLE subsystem handles a Win32 character-mode application that use a console supplied by the operating system. =item WINDOWS The WINDOWS subsystem handles an application that does not require a console and creates its own windows, if required. =item NATIVE The NATIVE subsystem handles a Windows NT device driver. =item WINDOWSCE The WINDOWSCE subsystem handles Windows CE consumer electronics applications. =item POSIX The POSIX subsystem handles a POSIX application in Windows NT. =back =head1 AUTHOR Jan Dubois <jand@activestate.com> =cut __END__ :endofperl |
:: Command execute :: | |
--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]-- |