首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
OS
订阅
Gogogo
更多收藏集
微信扫码分享
微信
新浪微博
QQ
6篇文章 · 0订阅
计算机那些事(5)——链接、静态链接、动态链接
通过前面对ELF文件结构的详细介绍,我们对ELF目标文件从整体轮廓到局部细节都有了一定的了解。那么接下来,当我们有多个目标文件时,如何将它们链接起来形成一个可执行文件呢?一切都要从链接说起。 模块化设计是软件开发中最常用的设计思想。链接(Linking) 本质上就是把各个模块之…
计算机那些事(6)——可执行文件的装载与运行
当我们在 Linux 的 bash 中输入命令执行某个 ELF 可执行文件时,如下所示。 首先在用户层面,bash 进程会调用 fork() 系统调用创建一个新的进程。其次,新的进程通过调用 execve() 系统调用来执行指定的 ELF 文件。原先的 bash 进程继续返回并…
ELF PLT Hook 原理简述
Android 是基于Linux的操作系统,因此在Android开发平台上,ELF是原生支持的可执行文件格式;ELF文件格式除了作为可执行文件,还可以作为共享库格式,也就是我们常见的so文件, 以及 object文件 (.o)、core dumps文件等。 GOT/PLT HO…
Linux ELF与动态链接库
hello.c首先经过预处理器cpp程序转换成通常为.i的文件,转换的过程中cpp根据以字符#开头的命令,修改原始c程序。可以手动调用cpp程序来转换: hello.c文件中如果使用了extern的函数add和printf,在生成的汇编程序中会生成相应的"call add"和"…
Linux系统中编译、链接的基石-ELF文件:扒开它的层层外衣,从字节码的粒度来探索
大家好,我是 ELF 文件,大名叫 Executable and Linkable Format。 经常在 Linux 系统中开发的小伙伴们,对于我肯定是再熟悉不过了,特别是那些需要了解编译、链接的家
计算机那些事(4)——ELF文件结构
前文结尾说到编译器编译源代码后生成的文件叫做目标文件,而目标文件经过编译器链接之后得到的就是可执行文件。那么目标文件到底是什么?它和可执行文件又有什么区别?链接到底又做了什么呢?接下来,我们将探索一下目标文件的本质。 目前,PC平台流行的 可执行文件格式(Executable)…