プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

hidden symbol が PLT経由してるってホンマかいな? このエントリーをはてなブックマークに追加

とBinary Hacks#29を見ながら、高林さんをdisって見るテスト :-)

とゆーわけでテスト

以下のファイルを準備

foo.c
extern void bar(void);

void foo(void){
printf("foo\n");
bar();
}


bar.c
void bar(void){
printf("bar\n");
}


libfoo.map
{
global: foo;
local: *;
};


あ、このバージョンスクリプトはfoo関数以外はライブラリ外から
呼べなくするよん。って意味ね > Binary Hack読んでない人へ


んで以下のようにコンパイル

gcc -shared foo.c bar.c -o libfoo.so -Wl,--version-script,libfoo.map


んで objdump -d して、foo関数を見ると以下

0000000000000900 :
900: 00 08 15 08 80 05 [MII] alloc r33=ar.pfs,5,4,0
906: 20 02 30 00 42 60 mov r34=r12
90c: 04 08 00 84 mov r35=r1
910: 01 00 00 00 01 00 [MII] nop.m 0x0
916: 00 02 00 62 00 80 mov r32=b0
91c: 84 ca df 9f addl r36=-66648,r1;;
920: 1c 00 00 00 01 00 [MFB] nop.m 0x0
926: 00 00 00 02 00 00 nop.f 0x0
92c: e8 fd ff 58 br.call.sptk.many b0=700 <_init+0xa0>
930: 0a 08 00 46 00 21 [MMI] mov r1=r35;;
936: 00 00 00 02 00 00 nop.m 0x0
93c: 00 00 04 00 nop.i 0x0
940: 1c 00 00 00 01 00 [MFB] nop.m 0x0
946: 00 00 00 02 00 00 nop.f 0x0
94c: 48 00 00 50 br.call.sptk.many b0=980


1つ目のcall(printfの呼び出し)は.pltへのポインタをつっこんでいるが、
2つ目のcall(barの呼び出し)はlibfooのbar関数のポインタを直接つっこんでいる

ためしに、ここでbar関数を別のライブラリでフックしようとしてみる

hook.c
extern void bar(void);

void bar(void){
printf("hook bar\n");
}


main.c
extern void foo(void);

main(){
foo();
}


$ gcc -shared foo.c bar.c -o libfoo.so -Wl,--version-script,libfoo.map
$ gcc -shared hook.c -o libhook.so
$ gcc main.c -L. -lfoo
$ LD_PRELOAD=./libhook.so ./a.out
foo
bar


見事フックに失敗した。

IA64で確認しているので他のアーキでは違うかもしれないけど、まあ、ハマった記録ということで。


実は、とある事情でbrkをフックしたかったのだが、なぜか失敗したので、objdump -d libc.so したら、.plt経由せずにbrk呼び出してたので、
ぐわー、なんじゃこりゃーーーー
とアホアホモード全開で深追いしてしまったよ。

しかし、libcの動作のフックが簡単に出来ないのはすごく不便だ。
なんとかしてくれ・・・


追記 なんかさっそくBinary Hacksの正誤表ページが更新されてる。高林さんの仕事は早過ぎる!!



あちゃー
あちゃー! ランキング

関連記事


linux | 【2007-01-24(Wed) 15:47:22】 | Trackback:(3) | Comments:(5)
コメント

ptrace でやるとめんどいしなぁ・・・悩みますね。
2007-01-24 水 05:45:24 | URL | dancerj #- [ 編集]

めんどいというより、デバッガでデバッグ出来なくなるのは致命的につらいっす
2007-01-24 水 06:07:37 | URL | kosaki #- [ 編集]

checkpointing などのためにファイルシステムアクセスをフックするを HPC 系ライブラリでもみんな困ってます。
Linux 以外だと問題なくフックできるんですけどね。glibc 不便…
このため、Versions ファイルを変更して hidden じゃなくした glibc を使ってたり…
2007-01-25 木 04:04:29 | URL | soda #- [ 編集]

ドキッ
なんで、オイラの業務内容が・・・
と、思ったら、一般論だった。
うむうむ、秘密が守れてよかったよかった(^-^/
2007-01-25 木 19:43:32 | URL | kosaki #- [ 編集]
デスノートでは、大胆な演技をしていますよ。イチ押しの監禁シーンは、かなりエロい。 薄手の拘束具が食い込み、その様子をカメラが舐めるように追うのだが、パンティーがチラ見えです。戸田は役に集中するために待ち時間も縛られっぱなしだった。
http://eirian0126.at.webry.info/200701/article_1.html
2007-01-27 土 04:29:56 | URL | 【戸田恵梨香】 大胆監禁シーンが大好評 #92y0sT2o [ 編集]
コメントの投稿(メールアドレスは公開されますのでMail欄は使わないことをオススメします)

巨乳ってやっぱいいなあと思う。このおっぱい、あのおっぱい…ahhhhhh!!!!!!!
【2007-02-22 Thu 18:13:00】 | 巨乳好きの為のアダルトエロ巨乳HP
魁!!副収入道~アフィリエイとで副収入脱サラするなら、まずは要点を理解し、働きがならできる事から着実に実行していきましょう!
【2007-02-26 Mon 04:35:00】 | 魁!!副収入道~アフィリエイとで副収入
例の納豆のやらせ問題…結構話題になりましたよね。スーパーからは納豆が消えたらしいですし。とはいえ、納豆って普通に良いものですし、毎日食べたら体にいいはずなんです
【2007-03-03 Sat 02:58:28】 | サプリのオススメ通販情報で健康一直線!
  1. 無料アクセス解析