タグ

dllに関するYudoufuのブックマーク (2)

  • なのは完売 とある関数の電脳戦 (じょうほうせん とある関数のバトルプログラム) - お前の血は何色だ!! 4

    カーネル/VM Advent Calendar の記事です。 それは、小さなメモリチップの中で繰り広げられる電脳戦のお話。 ひと足早いなのは完売(じょうほうせん)を楽しみましょう。 特定の処理の中に、自分の任意の処理を挟む行為をフックと呼びますが、フックから自分のプロセスを守りぬく方法はあるのでしょうか? windows環境でのanti hookのお話をします。 DLL Injection Hook windowsではさまざまなフック形式を用いることができます。 ほとんどのフックにおいて、最終的には自分のフック用DLLを相手のプロセスに叩きこんで、そこを橋頭堡として、フックを行います。 これはOSのプロセスのメモリ保護をかいくぐるのにフックDLLが便利だからです。 (ついでに8086のジャンプが相対アドレスってゆーのもありそうですがね。) これらのフックは、DLLを対象プロセスに挿入するの

    なのは完売 とある関数の電脳戦 (じょうほうせん とある関数のバトルプログラム) - お前の血は何色だ!! 4
  • 二流プログラマの三流な日常: 関数呼び出しの内部を理解する(1)

    内部を知らない人はWindowsのDLLで関数が正しく呼べないことが多いです。 また、UNIXを使う方も知識として覚えておいて損はないです。 C++の関数呼び出しについては、コンパイラとリンカが関係しています。 コンパイラは関数に装飾された名前(以下、装飾名)を作成します。 リンカは装飾名を使って、別ファイルにある関数や変数を参照します。 まず、この装飾名を調べる方法を紹介します。 コンパイラが付けた名前なので、調査対象は以下のファイルになります。 オブジェクトファイル(*.obj, *.o) ライブラリファイル(*.lib, *.dll, *.so) 確認しておきますと、ライブラリファイルとはオブジェクトファイルの集合です。 名前の調査には、Windowsの場合「dumpbin」コマンド(※1)を使います。 UNIXの場合は「ld」コマンド辺りだと思います。 ここではdumpbinを利用

  • 1