Use um invólucro de shell?
mv foo foo.real
cat >foo <<EOF
#!/bin/sh
... whatever instrumentation ...
exec foo.real "$@"
EOF
chmod +x foo
Isso falhará se foo
precisar ser chamado foo
e, nesse caso, PATH
truques podem ser necessários ou mover foo
para um diretório libexec
ou algo parecido. Ignore o exec
bit se a instrumentação de pós-execução também tiver que acontecer.