思い付き供養2005 実現方法 redirectプログラムをR、targetプログラムをT RがTに次のコードをlive patchingでおくる mmap(2)させて ptrace(2)でカキカキ int openusock(char *sockname) unix domain socketをopenしlisten, acceptするコード int recvfd(int conn, int fd) そのunix domain socketをつかってfdをうけとるコード RがTにopenusock()を実行させる おわったらbreakしてptraceに制御が戻るように Rがそのunix domain socketにconnectする Rがtargetのopenusock()の終了をまち、返り値のconnをえる 変更したいfdごとに RがTにrecvfd(conn, fd)を実行させる connはtargetのopenusock()の返り値 fdはtargetで変更したいfd Rがsendfdする Rがlive patchingでおくったコードをTからぬく munmap(2)させる