linux下找不到libc 库,Linux-覆盖libc open()库函数

我在库&中有glibc提供的相同的覆盖open().我首先在库中设置了LD_PRELOAD,因此当进程调用open()时,将调用库中定义的open.

问题:-glibc中还有其他几个函数,一旦示例为getpt(),就会调用open(),当getpt()调用open()时,将调用glibc中定义的open(),我将如何使getpt ()调用在我的library()中定义的open().

限制:-我没有选择编译glibc的选项.

解决方法:

正如tmcguire正确指出的那样,从posix_openpt到__open的调用是对内部符号的调用,并且不能插入.

实际上,glibc开发人员认为此调用是实现细节,您无需进行任何更改.

I am looking at compile time solution

你不能拥有它.

than run time solution cause run time solution will have performance impact.

运行时解决方案不必对性能有任何影响(除了调用open而不是glibcs​​的开销外).

我只知道库插入glibc内部调用的一种方式:运行时修补.这个想法是为了

>找到libc.so.6 open的地址(这是__open的别名),

>在运行时找到glibc .text节的边界

>扫描以查找__open指令

>对于任何此类指示

> mprotect它所在的页面可写

>计算一条名为CALL my_open的新指令,并将其修补为原始指令的“顶部”

> m保护页面回读和执行

这很丑陋,但在i * 86(32位)Linux上可以正常使用,在C *中,CALL可以“到达” 4GB地址空间内的任何其他指令.对于x86_64而言,它不起作用,其中CALL仍限于/ 2GB,但是从库到glibc的距离可能会更多.

在这种情况下,您需要在libc.so.6中找到一个合适的蹦床,您可以将原始的CALL重定向到该蹦床,并可以将寄存器间接JMP放置到最终的目的地.幸运的是,由于函数对齐,libc.so.6通常具有多个大小适当的未使用的NOP区域.

标签:gcc,override,glibc,ld,linux

来源: https://codeday.me/bug/20191121/2055603.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop 中zoo_0基础如何入门HADOOP

原标题:0基础如何入门HADOOP学习一样东西,肯定先要了解这个东西是什么,那什么是HADOOP呢?我们就来看看什么是HADOOP和如何学习HADOOP及学习内容。一,什么是HADOOPHADOOP是apache旗下的一套开源软件平台HADOOP提供的功能…

.NET 5 程序高级调试-WinDbg

上周和大家分享了.NET 5开源工作流框架elsa,程序跑起来后,想看一下后台线程的执行情况。抓了个进程Dump后,使用WinDbg调试,加载SOS调试器扩展,结果无法正常使用了:0:000> .loadby sos clrUnable to find…

精妙Sql语句

1. 判断a表中有而b表中没有的记录 select a.* from tbl1 a left join tbl2 b on a.key b.key where b.key is null 虽然使用in也可以实现,但是这种方法的效率更高一些 2. 新建一个与某个表相同结构的表 select * into b from a where 1&l…

.Net在线编辑工具.NET Fiddle

介绍推荐工具:.NET Fiddle推荐理由:在线调试,编译,运行.net代码,同时支持C#,VB.NET,F#推荐说明::对于.NET开发者来说是福音,因为我们可以不用再担心环境与庞大…

Typora markdown公式换行等号对齐_下了31个markdown编辑器,我就不信选不出一个好用的...

markdown编辑器测评标准总体标准渲染领域编辑领域数据管理其他TyporaVnoteMwebJoplinZettlrmacdownulyssesMarktextghostwriterfocusedbywordmarkedFarBoxNotablebear(熊掌笔记)iA writerMarxico(马克飞象)JetBrains系列的IDEsublime(贫穷,没有插件&…

WSUS专题之二:部署与规划1

部署场景: 我们这里仅讨论和Internet完全物理隔离的企业内网的WSUS部署 Internet断开的WSUS服务器环境 部署WSUS服务时,并不要求你必须连接到Internet。对于没有连接到Internet的网络环境,你一样可以部署WSUS服务。通过在其他连接到Internet上的WSUS服务…

linux gcc出错,编译arm-linux-gcc出错

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼在ubuntu12.04下编译arm的交叉编译工具链执行../gcc-4.6.0/configure --target$TARGET --prefix$PREFIX --without-headers --enable-languagesc --disable-threads --with-newlib --disable-shared --disable-libmudflap --disabl…

.Net Core in Docker - 使用阿里云Codepipeline及阿里云容器镜像服务实现持续交付/部署(CD)...

上一次演示了如何.Net Core in Docker - 使用阿里云Codepipeline及阿里云容器镜像服务实现持续集成(CI),讲到这里我们push一下代码后就自动编译、自动跑单元测试、自动构建镜像、自动推送镜像到私仓。那么离我们最初设定的目标只差那么一小步…

spyder pyecharts不显示_我的显示器需要定时校色吗?

在对图像色彩有要求的领域中,显示器的色彩准确是相当重要的。专业的显示器,能够具有更大的色域,更大的色深,以及更精确的ΔE色准值。这也是一个专业显示器所应有的品质。但是,我们在讨论色彩准确性的同时,往…

外观模式(Façade Pattern)

概述 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说…

WTM5.0发布,全面支持.net5

点击上方蓝字关注我们WTM5.0全面支持.net5WTM5.0是WTM框架开源2年以来最大的一次升级,全面支持.net5,大幅重构了底层代码,针对广大用户提出的封装过度,不够灵活,性能不高等问题进行了彻底的修改。这次升级使WTM继续保持…

rsa 模数 指数转换 c语言_模数转换,你必须知道的8个经典ADC转换电路方案

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一…

C语言怎么提出大写字母,c语言函数toupper()如何将小写字母转换为大写字母

c语言函数toupper()如何将小写字母转换为大写字母?大小写字母怎么转换?函数需要引入的头文件:#include toupper()的定义:int toupper(int c);toupper()函数介绍:若参数 c 为小写字母则将该对应的大写字母返回。toupper…

生活的目标是什么

07-1-25长大了,生活没目标了.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />学生时代的我,总想着闯一番事业.期待着自己可以有敏锐的头脑,和不俗的思想.并且为了这个目标辛勤地努力着.我是一个会考试的机器人,擅长的只是追逐答…

linux定时关机命令_win10电脑定时关机命令

电脑定时关机命令可以帮助用户们很好的去设置电脑自动关机等&#xff0c;自己无需操作&#xff0c;电脑也会在对应的时间自动关机&#xff0c;使用起来还是非常方便的&#xff0c;现在就来看看电脑定时关机命令教程吧~电脑定时关机命令是什么&#xff1a;一、CMD设置关机1、点击…

为你的项目启用可空引用类型

为你的项目启用可空引用类型IntroC# 从 8.0 开始引入了可空引用类型&#xff0c;我们可以为项目启用可空引用类型来借助编译器来帮助我们更好的处理代码中的空引用的处理&#xff0c;可以避免我们写很多不必要 null 检查&#xff0c;提高我们的效率Why为什么我们要启用可空引用…

c语言配电自动化,我是电气工程及其自动化专业的要学C语言吗?

电气工程、控制科学与工程、计算机科学与技术 主要课程&#xff1a;电路理论、信息电子技术、电力电子技术、自动控制原理、微机原理与应用、电气工程基础、电机学、电器学、电力系统分析、电机设计、高低压电器、电机控制、智能化电器原理与应用、电力系统继电保护、电力系统综…

系统启动小知识

登录时不显示欢迎屏幕为了加快计算机启动的速度&#xff0c;我们完全可以通过组策略设置在每次用户登录时将Windows XP欢迎屏幕隐藏。位置&#xff1a;\用户配置\管理模板\系统\ 要显示欢迎屏幕&#xff0c;请依次单击“开始→程序→附件→系统工具”选项&#xff0c;然后单击“…

有哪些编辑软件可以编辑c语言,可以推荐一个手机上最好用且免费的c语言编辑器吗?...

C4droid(又名C编译器)呗&#xff0c;一个既可以编辑&#xff0c;还可以运行C语言的手机编程软件&#xff0c;下面我简单介绍一下这个软件的安装和使用&#xff1a;1.首先&#xff0c;安装C4droid&#xff0c;这个直接在手机应用中搜索就行&#xff0c;如下&#xff0c;大概也就…

cas 4.2.7 官方手册_海城市地区,保险手册核验的简单流程

最近海城市社保正在进行保险手册的核验工作&#xff0c;据说是要将当地社保数据并网&#xff0c;由省社保机构监督管理。我们这个百万人口的县级市&#xff0c;核验工作只由一个部门在固定的办事大厅里完成&#xff0c;工作量也是相当大了。核验工作自9月末开始&#xff0c;已进…