Docker 内で radare2 を使うとき ptrace-traceme: Operation not permitted が出る問題
TL;DR: You must pass --security-opt seccomp:unconfined
when running a container.
クールなリバースエンジニアリングフレームワーク radare は、公式で docker イメージを提供しているので手軽に試すことが出来る。
しかし、デバッグモードで実行しようとすると以下のようなエラーが発生することがある。
r2@39573811ef24:~$ ls hello hello.c r2@39573811ef24:~$ r2 -d hello ptrace-traceme: Operation not permitted Cannot open 'dbg://./hello' for writing.
結論から言うと Docker のセキュリティ機構 *1 が影響しているので docker run
時に無効にする必要がある。
docker run --security-opt seccomp:unconfined --rm -it radare/radare2
参考: https://github.com/moby/moby/issues/20064
*1: システムコールに制限をかける seccomp https://blog.docker.com/2016/02/docker-engine-1-10-security/