>> Edit article
이름
제목
패스워드
관선님 감사합니다.. 저번에 메모리 할당 맞더라구요^^; 감답도 못드렸네요.. 이번문제인데..^^ man system에 보면 system을 시그널까지받게 만든 execve의 예제가 있어요 그거 보구 했는데.. 님 말씀처럼 하니까 ^^ 안되더군요.. 아..그리고 system으로 대충 해결했습니다. 이상한게 c에서는 안되던데 확장자를 cpp로 바꾸고 하니까 -_- 되버리고..(아니가? 내가 소스 조금 손봐서그러나?) 여하튼.. 그렇습디다..^^ 다시한번 감사드려요^^ 좋은하루되세요. : 안녕하세요.. : 조기.. 밑에 답변달았던 넘인데요.. : execve에서 /bin/sh 말구여 : 딴걸로 테스트 해보심이.. : sh를 다시 호출하면 부모 프로세스가 사라지지 않나 생각됩니다. : 그래서 밑에 있는 프린트문이 안찍히는것 같네요.. : 그리고, argvr[2]에서요, /bin/ls -a를 실행시키시려고 한것 같은데 : 이게 execve의 첫번째 아규먼트로 와야 하지 않나요? : 에궁.. 잘 몰르것심다.. : : : 우선 밑에 답변 달아주신분 감사합니다. : : 너무 바빠서 감사답변도 못달겠네요. 너그러이 생각해주세요. : : : : 다시 묻게 됐습니다. ㅡㅜ : : 시스템 콜함수 때문인데요.. : : system을 쓰다가 안되서 execve을 씁니다. : : system을 쓰니까 어느부분에는 system을 인식하고 : : 어떤부분에서는 system을 아예 무시하고 다음줄 소스부터 : : 실행하더군요. 무슨 조화인지.. : : : : 일단 소스 보여드릴께요 : : : : main() : : { : : : : char co1[]="/bin/ls"; : : char co2[]=" -al"; : : char st2[100]={0}; : : : : : : char *argvr[4]; : : argvr[0]="bash"; : : argvr[1]="-c"; : : argvr[3]=0; : : : : strcat(st2,co1); : : strcat(st2,co2); : : argvr[2]=st2; : : execve("/bin/sh",argvr,(char *)0); : : printf("complete message!!! i want see.pleas"); : : : : } : : 문제가 어떤거냐면 이놈을 실행시키면 execve까지 실행하고 : : 그다음 printf절을 무시해버립니다. 혹시나해서 다르게 소스도 : : 고쳐봤지만 execve실행하고 그다음 종료하고 빠져나가버리는것같더군요. : : 왜 이런거죠? : : execve저거 man페이지 뒤지면서 쓴건데 ㅡㅜ.. 틀렸나요? : : : : 시스템 콜함수에 대한 지식도 없는대다가 프로젝트는 해야겠고.. : : 기한은 임박해오고 자꾸 질문드리는게 죄송스럽지만.. : : 이렇게 밖에 해결할수가 없군요.. : : : : -- : : : : 좋은 하루되세요. : : -- : 빡/센/여/름/을/보/내/장--좋은 하루되세요.
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved