タグ

hookに関するrti7743のブックマーク (4)

  • detoursが復元なしで元関数を呼び出す仕組み - やや温め納豆

    以前、単純なJMP方式のフックとして紹介したやり方は、元関数を呼び出すために一時アンフックするという実装だった。 図解するとこう。 1.初期状態 2.ExitProcessフック実施後。関数の先頭5バイトがNewExitProcessへのJMPに改竄される。 3.ExitProcessが呼び出された。即座にNewExitProcessにJMPする。 4.NewExitProcessでフックを解除する。これによりExitProcessの先頭5バイトは復元される。 5.NewExitProcessでExitProcessを呼び出す。ExitProcessは実行を完了しNewExitProcessに制御を返す*1 6.NewExitProcessでフックを実施する。 でも問題があって、アンフックしている最中に別スレッドがExitProcessを呼び出すと、当然ながらNewExitProcessを

    detoursが復元なしで元関数を呼び出す仕組み - やや温め納豆
  • APIフックメモのまとめ #2 - やや温め納豆

    Win32 | 18:00 | #1の続き。 単純なJMP関数の先頭5バイトを JMP NN NN NN NN という命令に書き換え、JMP先に代替関数を用意する方法。TRAMPOLINE(トランポリン)と呼ばれているらしい。最近知った。日語では、過去に香り屋というサイトで紹介されていたが今はページが見当たらない。技法としては特徴的なものではないためか、あまり注目されていないような印象がある。IAT方式と比較して、実装上の複雑さが少ない。フックはモジュール単位ではなくプロセス単位で有効なのでLoadLibrary系をフックする必要は無く、GetProcAddressでも来の関数アドレスをそのまま返してしまって問題が無い(そのアドレスの先頭5バイトが既に改竄済みであるため)。フックに失敗することが殆どなく、フック処理そのものは信頼性がある。一方で、IATにはない課題もいくつか。5Byte

  • Finding the Linux System Call table in 2.6 series kernels - Charles Hooper

    I have been modifying Sebek to get it to work in more recent 2.6 series (~2.6.18) kernels and ran into some snags. Most notably, I could not intercept/redirect/wrap any system calls. As it turns out, Sebek couldn't find the system call table. The code Sebek was using to find the system call table is 100% identical to the code found in this article on KernelTrap. Unfortunately, that code is outdate

  • linux のシステムコールをフックする : DSAS開発者の部屋

    最近、とあるクローズドソースなデバイス管理ツールの挙動が気になり、その動作について解析してみることにしました。 プログラムをデバッグしたり解析したい時、どんなシステムコールが呼ばれ、どのような引数が渡されているかを、調べることができる strace は非常に有用です。 しかし、strace では ioctl で渡される複雑なデータ構造を表示することはできないため、システムコールをフックして引数を表示するという手段を取ることにしました。 そんな訳で linux でシステムコールをフックする方法について調べて見たところ、意外といろいろな方法が有ることを知りましたので、試してみた方法を幾つか紹介したいと思います。 注)今回の実験に使用した linux kernel のバージョンは 2.6.25.11 です。異なるバージョンではこの実験通りにはならない場合があります。 LD_PRELOAD を使っ

    linux のシステムコールをフックする : DSAS開発者の部屋
    rti7743
    rti7743 2010/01/23
  • 1
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy