execve의 시스템 콜 표이다. 레지스터는 rax, rdi, rsi, rdx순이다. rax는 59, rdi에는 파일 이름의 포인터, rsi에는 argv 포인터 배열이 온다. rdx는 시스템 환경 변수가 담긴다는데, 스킵하겠다. execve함수도 어차피 내부적으로는 sys_execve로 구현이 되어있고, 파라미터도 똑같이 받아준다. /bin/ls를 통해서 한번 어떤 식으로 구현이 되는지 확인을 해보겠다. 다음과 같은 코드를 짜서 gdb로 까보겠다. 1 2 3 4 5 6 7 8 #include #include int main(){ char * arr[3]={"/bin//ls","-al",NULL}; execve(arr[0],arr,NULL); return 0; } cs argv[0]은 항상 자기 자신이 들..