PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Exec


RedZ
26.08.2005, 02:46
Moin ich habe angefangen perl zu coden also sockets das geht ansich auch ich kann ein server auf einen port listen und per telnet drauf connecten nur zb möchte ich das die cmd ausgeführt wird und das geht einfach nicht er fürht das nicht im telnet sondern im "server"
aus ... ich habs auch probiert in ein array zu schreiben und das array einfach zu printen aber das geht auch nicht

hier der code


use IO::Socket;
use IO::Select;
my $socket = IO::Socket::INET->new(
LocalHost => '127.0.0.1',
LocalPort => 235,
Proto => 'tcp',
Listen => 5,
Reuse => 1
) or die "Konnte Socket nicht erstellen: $!\n";
my $select = IO::Select->new($socket);
while(@ready = $select->can_read){
foreach $client(@ready){
if($client==$socket){
my $process = $socket->accept;
$select->add($process);
print $process "Telnet Shell\n";
my $shell = (exec('cmd.exe'));
print $process "$shell";
sysread($process, $buffer, 4096);
}
}
}


mnemonic
26.08.2005, 11:26
Also grundsätzlich versteh ich mal nicht was Du willst.
Aber ein kleiner Tip: versuchs mal mit "use strict". Ich finde das sollte jeder standardmässig benutzen.
Satzzeichen sind auch ne gute Erfindung...
Kommentare im Code haben sich auch als nützlich erwiesen.

Felix Kaiser
26.08.2005, 13:56
Dir würde es nichts nützen CMD.EXE auszuführen und die Standardausgabe in eine Datei zu leiten. CMD.EXE wartet auf eine Eingabe, die bekommt es nicht. Das Sinnvollste wäre es selbst einen befehlsverarbeitenden Kern zu implementieren, der DOS Befehle oder weiß der Geier ausführt.