|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
[c]:socket
Una domanda veloce: è possibile fare una popen su una socket???????
Un grazie anticipato a chi mi aiuta. Ciao |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
No.
Devi fare esplicitamente fork()+dup2(socket, stdin|out|err)+exec. Come fa questo famoso trojan per aprire una backdoor tramite socket, ad esempio: http://www.hlug.org/trojan/trojan-script
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
Mamma mia che brutta notizia che mi hai dato,
Grazie per l'aiuto ciao. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Perché brutta? Cosa c'è di difficile?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
Brutta perchè la popen è più facile da implementare rispetto a dup,fork e exec.
ciao |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
Una volta eseguita questa istruzione:
dup2(sock,STDOUT_FILENO) ; come faccio a ripristinare la situazione precedente a questa istruzione?, cioè come faccio a riportare lo STDOUT_FILENO come lo standard out? (sock è il descrittore del socket) ciao |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Fallo dopo la fork sul ramo del child, così non avrà effetto sullo stdout del processo principale.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
Giusto, grazie mille, ciao
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
perchè quando faccio eseguire al mio programma questa istruzione:
execvp(cmd[0],cmd); con cmd[0]=cd,cmd[1]=nome_directory,cmd[2]=NULL, mi da questo errore: "execvp: No such file or directory" ??????? Preciso che con altri comandi tipo ls,rm,mkdir la execvp funziona tranquillamente. CIao Ultima modifica di mercury841 : 14-06-2006 alle 18:30. |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
up
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Perché "cd" non è un programma, ma un comando builtin di bash.
Forse cerchi la funzione "chdir()".
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
Non ho capito, ma cd non è un comando di shell come ls,rm e pwd?
Ho provato anche con chdir e mi da lo stesso errore. Ciao |
|
|
|
|
|
#13 | ||
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Gli altri sono programmi; con exec* puoi eseguire solo programmi. Non avrebbe senso inoltre un eventuale "programma che cambia la directory", in quanto la cambia per se -- non per il parent. Quote:
E' definita se includi <unistd.h>
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 409
|
ma pwd non è anch'esso un comando builtin di Bash???
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Dentro un programma devi usare la funzione getcwd()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
Se devi eseguire dei comandi della Shell di sistema va benissimo la funzione system()
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:55.



















