エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
dlsymをLD_PRELOADでフック - LowPriority
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
dlsymをLD_PRELOADでフック - LowPriority
LD_PRELOADで関数をフックしたい場合の常套手段は以下のような感じだが ここで使用するdlsym自体をフッ... LD_PRELOADで関数をフックしたい場合の常套手段は以下のような感じだが ここで使用するdlsym自体をフックする必要があったのでどうすればいいのか考えてみた。 void (*target_func)(void *p); void libinit() __attribute__((constructor)); void libinit(){ orig_func = dlsym(RTLD_NEXT, "target_func"); } void target_func(void *p){ ... orig_func(p); }そのままtarget_func=>dlsymにして呼ぶと、ローカルのdlsymが呼ばれてしまうのでNG。 困ったときのlibc頼みでnmしながら眺めていたら__libc_dlsymという物があった。 試してみたところdlsymと同じような動きをしてくれる模様。 un