ld-preload

    6热度

    1回答

    我熟悉如何使用dlopen()来检查共享库是否已被加载到进程中,如果它没有触发加载,则在不触发加载的情况下使用先前调用dlopen()目前,像这样: void* lib = dlopen(lib_name, RTLD_NOLOAD); if (lib != NULL) { ... } 我最近尝试采用同样的模式,以确定是否共享库屈指可数的一个已经被加载到使用LD_PRELOAD进程

    -1热度

    1回答

    我尝试使用MATLAB MEX编译,但我不断收到此错误: Warning: You are using gcc version "5.4.0-6ubuntu1~16.04.1)". The version currently supported with MEX is "4.2.3". For a list of currently supported compilers se

    0热度

    1回答

    我们LD_PRELOAD一个库的某些功能,如果我想禁用该功能并想卸载库有没有办法做到这一点?我不要想要使用RTLD,它必须是一个LD_PRELOAD所以不建议dlsym。 另外一个使用案例是LD_PRELOAD由进程创建的任何子进程也具有我不想要的相同环境。有没有办法做到这一点?

    2热度

    1回答

    我有静态链接二进制文件(ELF文件)它没有动态段,.dymsym部分,它不执行LD_PRELOAD命令等。 我怎么能创建假虚拟动态段来激活动态加载器并执行LD_PRELOAD命令?

    0热度

    1回答

    我正在使用LD_PRELOAD从应用程序中记录malloc调用并映射出虚拟地址空间,但malloc在fopen/printf内部使用。有没有办法解决这个问题? 我知道glibc的钩子,但我想避免更改应用程序的源代码。

    0热度

    3回答

    是否可以使用LD_PRELOAD来覆盖其中一个Linux内核函数? 例如,我想更改函数Linux/net/ipv4/syncookie.c为我的程序fooserver的监听套接字。我可以使用LD_PRELOAD来完成,还是我需要重新编译内核? 还有其他的选择吗? 感谢,

    1热度

    1回答

    我有一个简单的命令行应用程序(自定义dir二进制文件),我想对其进行测试。调试符号被启用,我可以看到我感兴趣的全局字符串指针the_full_path_name,输出objdump和nm -D。 是否有可能,在c,以某种方式查找那个符号名称/位置,并打印它指向在使用代码注入所述存储器中的内容(即:LD_PRELOAD库与自定义gcc attribute((constructor))和附加功能)?我

    1热度

    1回答

    我有一个相当特殊的文件格式可以使用: 每行以其内容的校验和开头,后面跟着一个换行符。 它看起来像这样: [CHECKSUM OF LINE_1][LINE_1]\n [CHECKSUM OF LINE_2][LINE_2]\n [CHECKSUM OF LINE_3][LINE_3]\n ... 我的目标:要允许任何应用程序使用这些文件的工作就像他们将与其他任何文本文件工作 - 不知道额

    1热度

    1回答

    我目前正在利用LD_PRELOAD技巧,并且正在使用链接器版本脚本as detailed in an article on another website。我的MCVE代码包含在下面。 #define _GNU_SOURCE #include <dlfcn.h> #include <stdio.h> #include <stdarg.h> #include <string.h> #inc

    1热度

    3回答

    我试图在Linux上使用LD_PRELOAD来包装调用system函数来添加一些预处理的参数。这里是我的system.cpp: #define _GNU_SOURCE #include <dlfcn.h> #include <string> #include <iostream> typedef int (*orig_system_type)(const char *command);