Я пытаюсь использовать 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
И взломанный .cpp:
g++ -shared -fPIC hacked.cpp
Я пытаюсь:
LD_PRELOAD=./hacked.so ./original.out
Строка «Hello hacked myPuts» должна быть видна, появляется «Hello myPuts»
(Если я попытаюсь перезаписать функцию put, она будет работать правильно)
Чего мне не хватает?