首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux,使用nm命令输出可执行文件符号表

可执行文件符号表(symbol table)记录了某个可执行文件函数名、全局变量、宏定义等符号信息,这些信息对于我们调试十分重要。...目前,我正在DragonOS上开发内核栈traceback程序,因此需要导出内核文件符号表.这个时候就需要用到Linuxnm命令。...nm命令属于GNU binutils功能,能够输出可执行文件符号表。它用法是这样: 用法:nm [选项] [文件] 列举 [文件] 中符号 (默认为 a.out)。...对于不记录符号大小目标文件格式,此选项不起作用,除非使用了--size sort,在这种情况,将显示计算大小 -s, --print-armap 当列出库中成员符号时,同时列出索引。...只有在启用插件支持情况构建了工具链时,此选项才可用 --size-sort 按符号大小排列 --special-syms 显示目标相关具体特殊含义符号。

2.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux系统利用可执行文件Capabilities实现权限提升

一、操作目的和应用场景 Capabilities机制是在Linux内核2.2之后引入,原理很简单,就是将之前与超级用户root(UID=0)关联特权细分为不同功能组,Capabilites作为线程...(Linux并不真正区分进程和线程)属性存在,每个功能组都可以独立启用和禁用。...2、 Capabilities管理方法 (1)设置Capability 举个例子,安装wireshark软件后,默认情况,普通用户无法对网卡实施抓包操作。这是因为普通用户不具备相应权限。 ?...(二)利用Capabilities实现权限提升 现在假设管理员对一些可执行文件设置了capabilities。测试人员通过下面的命令查找这些文件: getcap -r / 2>/dev/null ?...在kali linux上提权成功,获取了root shell。 在CentOS 7系统中安装低版本php无法提权: ?

4.3K20

Linux可执行文件与进程虚拟地址空间

Linux可执行文件与进程虚拟地址空间 一个可执行文件被执行同时也伴随着一个新进程创建。...Linux会为这个进程创建一个新虚拟地址空间,然后会读取可执行文件文件头,建立虚拟地址空间与可执行文件映射关系,然后将CPU指令指针寄存器设置成可执行文件入口地址,然后CPU就会从这里取指令执行...Proc目录下进程虚拟地址空间布局 Linux在装载可执行文件时候,会将这些segment映射到进程地址空间中。映射时候,这里面的segment会对应一个VMA。...当我们在谈到ELF装载时,段专门指segment,而在其他情况,段指的是section。 在实际映射过程中,只发现有代码段映射VMA,有数据段映射VMA,却没有BSS段映射VMA。 ?...可以发现,MemSiz比FileSiz多出了0x20个字节,十六进制20对应十进制是32。再来看一这个ELF可执行文件中BSS段大小。 ? 可以看到,BSS段大小正好是十进制32,。

4.2K30

Linux系统创建可执行文件软链接

这里我们使用案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接方法快捷使用该可执行文件。...Mac可能需要去掉static): $ g++ -static -O3 -ffast-math -lm -o TMalign TMalign.cpp 编译之后就会在当前路径下生成一个名为TMalign可执行文件...,有时候会遇到想把可执行文件放在特定路径问题,比如放到/usr/bin目录下,这样可以全局可调用,又不需要手动添加各种乱七八糟系统路径。...这就需要使用到Linux软链接功能,通常使用ln -s指令即可。...本文顺带介绍了蛋白质结构评分软件TMalign源码下载和安装使用基本方法,编译成一个可执行文件后,可以建立一个软链接,在系统各处都可以使用,是一个比较基础操作。

2.8K20

详解 Linux 可执行文件 ELF 文件内部结构

有了上面汇编语言调用 C 语言基础,我们就可以做到让汇编语言编写 loader 拉起用 C 语言编写内核了,本文我们就来详细了解一编译后可执行文件 — ELF 文件结构,下一篇文章将会介绍如何通过汇编将...在 linux 中,可执行文件、Object文件、动态库文件都是ELF格式文件,他相当于 windows 操作系统中 PE 文件。 通过 readelf 命令可以读取 ELF 文件内容。 3....这里提到了“节”概念,上一篇文章中,我们在汇编中使用了 section 关键字,就是指定了对应代码块 section 类型,linux 支持下面的三种 section: .text — 代码段,用来存放代码...可执行文件, 3....别忘了我们目标,我们需要通过汇编语言编写 loader 程序将在 linux 环境上编译 C 语言内核程序载入到内存并执行,因此,实际上我们只需要知道 ELF 文件需要如何被载入内存,并从哪里开始执行

2.6K20

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件功能正常,以及对于各种平台兼容性较好,这就可以了。...构造python测试实例 因为可执行文件自身内容都是固定,只能通过配置文件或者是命令行输入参数来进行传参,因此我们构造python文件时候主要从命令行这个角度来出发,通过读取命令行输入参数来决定...最常用方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,BLACKPINK不需要在前面加上路径就能运行。...[dechin-root installer]# pye -p2 7 The power2 of number 7 is : 49.0 我们发现所有的功能都是正常,并且在普通帐号也是可以正常使用。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行入参

2.8K00

LINUXPHP

由于linux系统稳定性,大部分PHP服务器都被部署在linux上,而且像redis等扩展在linux能得到更好支持,所以对于PHP程序员来说,使用linux功底也相当重要,接下来总结一我从一开始在...linux安装配置linux心得。...用过小巧virtual box,在win7安装要改theme主题文件,辛苦装好环境因为未知原因(兼容问题排除后,猜测是BIOS设置问题,可参考)打不开虚拟机而放弃后,终于选择了VM,VM安装linux...说一要注意地方吧:虚拟机配置选择“桥接模式”,这样,虚拟机和主机就在同一个IP段,可以很轻松地互相访问,VM如图: ? 然后是我们经常要遇到问题网络配置、和虚拟之间交互、yum配置。...像mongo等扩展服务器是扩展核心,要在各自官网找到下载地址,用wget命令下载下来,然后解压安装,一般是官方编译好可执行文件,直接复制到目标目录即可。

3.7K80

可执行文件组成

大家好,又见面了,我是你们朋友全栈君。 在 ADS ,可执行文件有两种,一种是.axf 文件,带有调试信息,可供 AXD 调试工具使用.另一种是.bin 文件,可执行二进制代码文件。...我们重点是讲描.bin 文件组成。 我们把可执行文件分为两种情况:分别为存放态和运行态。 1. 存放态 存放态是指可执行文件通过 fromelf 产生后,在存储介质(flash 或磁盘)上分布....可执行文件存放态如下: +————-+———– | .bss | +————-+– 数据段 | .data | +————-+———– | .rodata | | |...运行态 可执行文件通过装载过程, 搬入到 RAM 中运行, 这时候可执行文件就变成运行态。...在 ADS 对可执行代 码各段有另一个名称: | … | +————-+———– | .bss | ZI 段 +————-+– 数据段 | .data | RW

61120

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件功能正常,以及对于各种平台兼容性较好,这就可以了。...构造python测试实例 因为可执行文件自身内容都是固定,只能通过配置文件或者是命令行输入参数来进行传参,因此我们构造python文件时候主要从命令行这个角度来出发,通过读取命令行输入参数来决定...最常用方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,不需要在前面加上路径就能运行。...[dechin-root installer]# pye -p2 7 The power2 of number 7 is : 49.0 我们发现所有的功能都是正常,并且在普通帐号也是可以正常使用。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行入参

3K20

Linux Stat 命令

FILE... stat接受一个或者多个输入FILE,和一系列选项,用来控制命令行为和输出结果。...安全内容 Access - 文件最后被访问时间 Modify - 文件内容最后被修改时间 Change - 文件属性或者内容最后被修改时间 Birth - 文件创建时间(Linux 下不支持)...显示关于文件系统信息 为了获取文件归属文件系统相关信息,而不是获取文件本身信息,我们使用-f,(--file-system)选项: stat -f file.txt 这个命令输出看起来是这样:...用户可用剩余块数 Inodes: Total - 文件系统上总节点数 Free - 文件系统上剩余节点数 间接(跟进)软连接 默认情况,stat 不会跟进软连接。...总结 stat命令打印了文件和文件系统信息。 在 Linux ,还有其他几个命令可以显示文件信息。ls就是最有用一个,但是它只显示stat信息中一部分。

4.3K10

Linux Pgrep 命令

本文讲述 Linux pgrep命令基础知识。 pgrep是一个命令行工具,它允许你基于给定条件来查找正在运行程序进程 ID。它可以是进程名字全称或者一部分,进程运行者,或者其他属性。...这个pgrep命令是procps(或者procps-ng)软件包一部分,它基本上在所有的 Linux 发行版上都预装了。...如果没有发现匹配,输出将是空: 1039 2257 6850 31279 当至少有一个进程匹配了所给名字时,这个命令返回0.否则,返回退出错误码1。这在 shell 脚本中很有用处。...如果你想发送信号给匹配进程,使用pkill。这个命令是pkill封装,并且使用了同样选项和匹配样式。 pgrep会在每一行打印一个匹配进程。-d选项允许你指定一个分隔符。...2257 ssh-agent 6850 ssh 31279 ssh-agent 如果你想严格按照搜索样式准确匹配进程,你需要使用: pgrep '^ssh$' -l 输出: 6850 ssh 默认情况

7.6K50

Linuxfree命令

一、简介 free命令是最经常使用命令之一,用于查看内存使用情况。 free命令可以显示Linux系统中空闲、已用物理内存及swap内存,及被内核使用buffer。...输出简介 Mem 行(第二行)是内存使用情况。...Swap 行(第三行)是交换空间使用情况。 total 列显示系统总可用物理内存和交换空间大小。 used 列显示已经被使用物理内存和交换空间。...shared 列显示被共享使用物理内存大小。 buff/cache 列显示被 buffer 和 cache 使用物理内存大小。 available 列显示还可以被应用程序使用物理内存大小。...请注意,这只是一个很理想计算方式,实际中数据往往有较大误差 周期性查看怎么办? 使用 free -s 10 ,这里 10 代表间隔10秒查看 ``

27410

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券