当前位置:  开发笔记 > 编程语言 > 正文

DYLD_LIBRARY_PATH和DYLD_INSERT_LIBRARIES无法正常工作

如何解决《DYLD_LIBRARY_PATH和DYLD_INSERT_LIBRARIES无法正常工作》经验,为你挑选了1个好方法。



1> Brandon..:

我原来帖子中的代码曾用于优胜美地.在El Capitan,它不起作用.我最终做了以下方法(DYLD_INTERPOSE+ DYLD_INSERT_LIBRARIES):

#define _GNU_SOURCE
#include 
#include 
#include 


#define DYLD_INTERPOSE(_replacment,_replacee) \
__attribute__((used)) static struct{ const void* replacment; const void* replacee; } _interpose_##_replacee \
__attribute__ ((section ("__DATA,__interpose"))) = { (const void*)(unsigned long)&_replacment, (const void*)(unsigned long)&_replacee };


void* pMalloc(size_t size) //would be nice if I didn't have to rename my function..
{
   printf("Allocated: %zu\n", size);
   return malloc(size);
}

DYLD_INTERPOSE(pMalloc, malloc);


关闭,但它并非来自那里.我正在查找如何"在OSX上挂钩函数"并遇到LD_PRELOAD和DYLD_INSERT_LIBRARIES,因为两者都没有工作,我查找了如何在OSX上执行`代码注入`并且遇到了`DYLD_INTERPOSE`的Google论坛帖子.有趣的是,直到我结合这两个想法才行.
非常感谢你的回答:)
推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有