Slide 10
Slide 10 text
© 2020 Coiney, Inc.
● 関数をパッチする方法
○ #defineを使ってコンパイル時に関数を置き換える
○ LD_PRELOADを使ってリンクする関数を変える
○ -Wl,--wrapを使ってリンク時に関数を読み替える
● ruby-packer では#defineを使ってパッチしている
○ ruby本体に変更を加える必要がある
○ rubyの変更に追従する必要がある
● LD_PRELOADは共有ライブラリにする必要がある
○ 動的リンク時に解決
○ パッチファイルを共有ライブラリにして配布する必要がある
● -Wl,--wrapが使えそう...?
○ rubyに変更を加える必要がない&静的リンクで解決
○ GNU Linker限定のオプション
● 別解でIFUNCとかもありそう
open, readなどの関数をパッチする
10
10