我是计算机科学专业的学生。作为我的主人项目的一部分,我试图拦截对Android平台上本机库中的函数的调用。目标是决定是允许呼叫还是拒绝呼叫以提高安全性。
按照研究论文1的方法,我想修改ELF文件的过程链接表(PLT)和全局偏移表(GOT)。我的想法是,我想让所有函数调用都指向我自己的拦截函数,该函数决定是阻止调用还是将其传递给原始目标函数。
ELF规范2表示(在第三册,第2章程序加载和动态链接,第2-13页,章节“全局偏移表”和“程序链接表”)中的实际内容和形式PLT和GOT取决于处理器。但是,在文档“ARM架构的ELF”3中,我无法看到这些表中任何一个的确切规范。我现在专注于ARM而不考虑其他架构。
我有3个问题:
谢谢, 曼努埃尔
答案 0 :(得分:0)
我为x86_64 Linux做了一些事情 https://github.com/astarasikov/sxge/blob/vaapi_recorder/apps/src/sxge/apps/demo1_cube/hook-elf.c
还有一个关于在Android上做你想做的事情的博客 https://www.google.de/amp/shunix.com/android-got-hook/amp/