タグ

ブックマーク / firewood.hatenadiary.jp (2)

  • 汚いなさすがPerlきたない - firewood's diary

    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にmmapされるとSEGVで死ななくなってしまうのでそれも抑止する。 2. Perl sandbox for Linux fork() sys

    汚いなさすがPerlきたない - firewood's diary
    bull2
    bull2 2009/04/23
  • 構造体が拡張されたときの動作 - firewood's diary

    以下,UNICODE ビルドで試した SystemParametersInfo/SPI_GETNONCLIENTMETRICS のパラメータと,Windows XP SP2 及び Windows Vista SP1 での API 成否の関係.uiParam が無視されていて,NONCLIENTMETRICS::cbSize のみで互換性判定を行っているらしいことが分かる. だからといってドキュメントを無視すべきではない. uiParam cbSize XP SP2 (x86) Vista SP1 (x86) 0 500 success success 500 500 success success 504 500 success success 0 504 fail success 500 504 fail success 504 504 fail success 504 0 fail f

    構造体が拡張されたときの動作 - firewood's diary
    bull2
    bull2 2008/06/28
    「「Windowsアプリケーションの開発者はWINVERか_WIN32_WINNTを必ず定義せよ」」
  • 1