相关疑难解决方法(0)

LD_PRELOAD和某些可执行文件的calloc()插入问题

之前的一个问题有关

我已成功插入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)

c++ malloc free dynamic-linking ld-preload

5
推荐指数
2
解决办法
3007
查看次数

标签 统计

c++ ×1

dynamic-linking ×1

free ×1

ld-preload ×1

malloc ×1