LD_PRELOADを使おうとしています。
original.cpp
void myPuts() {
puts ("Hello myPuts");
}
int main() {
myPuts();
return 0;
}
hacked.cpp
void myPuts() {
std::cout >> "Hello hacked myPuts";
}
original.cppをコンパイルします:
g++ original.cpp
そしてhacked.cpp:
g++ -shared -fPIC hacked.cpp
私は試してみます:
LD_PRELOAD=./hacked.so ./original.out
「HellomyPuts」が表示されると、「HellohackedmyPuts」という文字列が表示されます。(puts関数を「上書き」しようとすると、正しく機能します)
私は何が欠けていますか?