>> Edit article
이름
제목
패스워드
우선 밑에 답변 달아주신분 감사합니다. 너무 바빠서 감사답변도 못달겠네요. 너그러이 생각해주세요. 다시 묻게 됐습니다. ㅡㅜ 시스템 콜함수 때문인데요.. 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