내 Mac에 자체적으로 설치된 x86_64 16.04 Ubuntu VirtualBox에 설치된 arm64v8/alpine docker에서 GDB를 사용하여 aarch64 ELF를 디버깅하고 싶습니다. 특히 도커를 설정하려면 다음 지침을 사용했습니다.여기. 그건:
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
sudo docker run --rm -it -v /directory_on_ubuntu:/directory_on_alpine arm64v8/alpine /bin/ash
나는 GDB
알파인 컨테이너에 설치하고 알파인에서 명령을 사용하여 프로세스를 가져오고 PID
경고를 받았을 때 프로세스에 연결하는 데 사용했습니다. 및 태그의 게시물을 읽었지만 첫 번째 줄의 태그가 docker의 보안 측면을 관리하면 안 되나요? 또한 컨테이너와 호스트 모두의 파일을 살펴보고 값을 0으로 설정했습니다. 변수가 호스트에 있을 때 컨테이너에서 파일을 찾을 수 없다는 점도 언급할 가치가 있습니다. 하지만 구현이 부족하다는 것은 Docker를 설정하는 방식과 관련된 더 큰 문제가 있을 수 있음을 의미한다고 생각합니다. 바이너리 디버깅에 대한 도움이나 해결 방법을 알려주시면 감사하겠습니다.ELF
ps aux
(gdb) attach PID
ptrace: Function not implemented
--cap-add=SYS_PTRACE
seccomp
privileged
/proc/sys/kernel/yama/ptrace_scope
Ubuntu
/etc/sysctl.d/10-ptrace.conf
alpine
Ubuntu
kernel.yama.ptrace_scope=0
ptrace
GDB