我已成功插入malloc,但calloc似乎更成问题.
对于某些主机而言,calloc内部可能存在内部calloc调用,陷入无限循环dlsym.但是,基本测试主机不会出现此行为,但我的系统的"ls"命令会出现此行为.
这是我的代码:
// build with: g++ -O2 -Wall -fPIC -ldl -o libnano.so -shared Main.cc
#include <stdio.h>
#include <dlfcn.h>
bool gNanoUp = false;// global
// Function types
typedef void* (*MallocFn)(size_t size);
typedef void* (*CallocFn)(size_t elements, size_t size);
struct MemoryFunctions {
MallocFn mMalloc;
CallocFn mCalloc;
};
MemoryFunctions orgMemFuncs;
// Save original methods.
void __attribute__((constructor)) __nano_init(void) {
fprintf(stderr, "NANO: init()\n");
// Get address of original functions
orgMemFuncs.mMalloc = …Run Code Online (Sandbox Code Playgroud)