function-interposition相关内容
我完全按照本网站上的说明进行操作 http://www.newosxbook.com/src.jl?tree=listings&file=4-5-interpose.c 这是该页面的代码 #include #include #include #include #include //对于 malloc_printf()//注意:用 GCC 编译,而不是 cc(重要)//////这是预期
..
我已经在下面测试了这样一个简单的程序 /*共享库*/dispatch_write_hello(无效){fprintf(stderr,"hello \ n");}外部虚空print_hello(无效){dispatch_write_hello();} 我的主程序是这样的: 外部无效dispatch_write_hello(无效){fprintf(stderr,"overridden \ n"
..
特别是在Mac OS X上,是否可以通过DYLD_INSERT_LIBRARIES使程序忽略SIGTERM,从而对任何或大多数程序都起作用? 我尝试编译并插入此代码: #include #include #include void sig_handler(int signo) { if (signo == SIGTER
..
我需要插入(调用我的函数而不是原始函数)一些OS X系统调用来克服一个封闭源代码软件中的缺陷. 最好,最终的解决方案可以在10.5(Leopard)及更高版本下工作,但如果论点足够强大,我 可能可以要求10.6(Snow Leopard). 最好,最终的解决方案将是可执行文件,但我可能会选择脚本. 最好,即使在目标应用程序运行后,生成的解决方案也可以插入(“窃取向量"),但是我可
..
我有 x = linspace(-5,5,256) y = 1./(1+x.^2) plot(x,y,'...') %plot of (x,y) 我想用一个10阶的多项式来估计它,以使该多项式在11个点处与图相交. 所以,我这样做了: x2 = linspace(-5,5,11) y2 = 1./(1+x2.^2) p = polyfit(x2,y2,10) %finds
..
我想编写一种共享库,以便可以将其内存使用情况与链接到的应用程序隔离开来.也就是说,如果将共享库称为libmemory.so,然后调用malloc,则我希望将该内存与用于服务于应用程序中对malloc的调用的堆分开保存在单独的堆中.这个问题不是关于编写内存分配器的,而是关于将库和应用程序链接和加载在一起的. 到目前为止,我一直在试验功能插入,符号可见性和链接技巧的组合.到目前为止,由于一件事,
..
我目前正在Linux上与两个第三方共享库(A.so和B.so)进行链接。问题是两者都与另一个库静态链接,因此从A.so和B.so获得约400个函数具有相同的名称。 当我编译并链接-lA -lB或-lB -lA时,根据顺序,函数从A或B中分别被拾取,这是由于函数中断导致的问题,代码无法运行。我想知道是否有一种方法可以将函数名绑定到它们的库,这样两个库可以被链接和使用?因为那些重叠的函数名在A和B内
..
我目前工作的一个项目,我需要跟踪的几个系统调用和低级别的功能,如 MMAP , BRK使用, SBRK 。到目前为止,我一直在做这个使用功能的设置:我写的同名因为我替换( MMAP 为例)功能的包装函数,我通过设置 LD_ preLOAD 环境变量加载它的程序。我所说的真正功能通过我和则dlsym 加载一个指针。 不幸的是,我想换的功能之一, SBRK ,在内部被则dlsym 使用,所以当我尝试
..
我要拦截connect()系统调用和使用自己定制的实现。自定义实现会做一些动作,例如打印日志为简单起见,然后再调用系统的实现。 我看着奥黛丽的博客其中的方法是修补PLT。但不幸的是这code试图在重定位表更改地址时崩溃。 goggling过了一会儿,我碰到
..
我试图拦截非植根设备上由我的Android应用程序的所有系统调用。 所以每次我的应用程序写入的时间/读取文件,我想拦截系统调用和加密/解密流出于安全目的。加密的部分是没有问题的,但我怎么拦截系统调用? 由于该应用程序的部分模块开发的第三方供应商,而我不能更改源$ C $ C,有没有其他办法,以确保数据的安全存储。 由于我没有root访问我无法访问系统调用表的地址描述这里,我无法通过L
..