어셈블리에서 더 복잡한 시스템 호출을 이해하는 데 약간의 어려움이 있습니다. 나는 간부 시스템 호출을 쓴 내가 조금 확보하고 레지스터에 문자열을 넣어하는 방법에 관한 정보를 찾을 수 없어 생각하지만 그것은 큰어셈블리 및 시스템 호출
.bss
.text
.globl _start
_start:
#exit(0) system call
movl $1, %rax
movl $0, %rbx
int $0X80
을했다. 예를 들어 exec 시스템 호출을 원했고 첫 번째 매개 변수는 실행할 파일 이름이 필요하므로 "/ bin/bash"를 실행하려고했지만 rbx에서는 어떻게 가져올 수 있습니까? 나는 X86에서 rbx를 사용해야한다는 것을 어떻게 알 수 있습니까? ebx를 사용할 것임을 알고 있습니다. amd64 ebx = rbx, ecx = rcs 등에서 동일한 관계입니까?
int execve (const char * filename, char * const argv [], char * const envp []);
감사합니다 모두
은 지금 감사를 이해합니다. – Recursion
하지만 .asciiz를 의미하므로 null이 종료 되었습니까? – Recursion
재귀 : 예. –