Shibuya.pm #11「no Perl; use x86;」鑑賞してきた。 常々PerlはLLじゃないんじゃないかと思っていたのだが、LLの皮をかぶったアセンブラであることを再確認したのであった。 1. catcher in the int 80h; inside lleval FreeBSD::i386::Ptraceの実装について。 pt_to_sce()でsystemcallを実行直前にフックできる。スタックに積まれた引数を書き換えることができるので、実行したくないオペレーションであればSEGVで死ぬような引数に書き換えることでsandboxを実現。 forkは引数がないのだが、EIPを0に変更することはできるので、それで殺す。アドレス0にmPerl sandbox for Linux fork() sys