当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

musl

Linux 标准库
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 方航
操作系统 Linux
开源组织
适用人群 未知
 软件概览

musl 是一个全新为 Linux 基本系统实现的标准库。特点是轻量级、快速、简单、免费、标准兼容和安全。

  • 0. 序 本篇承接上一篇的动手调试C库-1 ,主要讨论musl-c的动态链接器。 3. overview musl-c的动态链接器代码主要位于ldso/dlstart.c, ldso/dynlink.c。musl-c的动态链接器重定位主要分为三个阶段,第一阶段是_dlstart_c函数,第二阶段是__dls2和__dls2b函数,第三个阶段是__dls3函数。 描述动态库的数据结构是dso, 在d

  • 近年来,musl libc作为一个轻量级的libc越来越多地出现在CTF pwn题之中,其和glibc相比有一定的差距,因此本文我们就musl libc最常考的考点——内存分配,进行musl libc的源代码审计。 不同于glibc多达四五千行代码,大小超过10w字节的malloc.c,musl libc中的malloc.c大小甚至都不到1w字节,其轻量级的特性也使得我们更加容易去阅读它的代码。

  • g++和gcc是GNU编译器集合中的两个组件,g++是GNU C++编译器,gcc是GNU C语言编译器。这两个编译器都使用glibc作为标准C库,glibc是GNU操作系统的标准C库,为支持C程序提供了许多函数和服务。 简单来说,glibc是C标准库的一个实现,它包括头文件、函数库和其他的应用程序。而g++和gcc则是编译器,它们将源代码编译成可执行文件,通过调用glibc库中的函数来执行程序。

  • 在上一篇文章中,我们详细分析了如何通过musl的内存分配系统实现任意两个地址互相写的利用。本文据此讨论应该如何使用这种方式getshell。 首先看到musl中的_IO_FILE结构体: struct _IO_FILE { unsigned flags; unsigned char *rpos, *rend; int (*close)(FILE *); unsigned char *wen

  • 在上一篇文章中我们学习了musl libc中内存分配的相关知识,了解了重要的数据结构及函数内容。本文将在此基础上进一步分析musl pwn的利用方式。 musl libc利用的核心思想是向free中传入一个假的chunk指针。由于free函数会通过该chunk进行回溯,获取到其所在的group和meta,因此除了构造假chunk外,还需要构造假group和假meta。如果在假meta中合理构造pr

  • Golang 的一个动态链接依赖问题 upx 是一个压缩二进制的工具,如上图,经过压缩之后,这些 binary 的体积都减少了 46%。 静态链接 CGO 的依赖 如果使用 glibc 的是,是不能静态链接的: root@f88271a666f9:/workspace# go build -ldflags "-linkmode external -extldflags '-static'" ./c

  • musl is an implementation of the C standard library built on top of the Linux system call API, including interfaces defined in the base language standard, POSIX, and widely agreed-upon extensions. mus

  • dig into musl 1.数据结构 1.malloc_context struct malloc_context { uint64_t secret;//用于检查meta的合法性 #ifndef PAGESIZE size_t pagesize;//0x1000 #endif int init_done;//是否初始化 unsigned mmap_counter;//用mmap开辟空

  • 1、下载源文件。网址:musl libc 2、解压到一个到不带中文路径的目录下,在该目录下右键新建终端 3、运行配置文件: ./configure 4、编译: make 5、安装: make install 过程中可能会出现permission denied报错,或无法在/usr/下新建目录:执行su,再安装 su 6、配置环境变量: musl默认安装目录是:/usr/local/musl 

 相关资料
  • Python 标准库(Python Standrad Library)中包含了大量有用的模块,同时也是每个标准的 Python 安装包中的一部分。熟悉 Python 标准库十分重要,因为只要你熟知这些库可以做到什么事,许多问题都能够轻易解决。 我们将探索这个库中的一些常用模块。你能在你的 Python 安装包中附带的文档中的“库概览(Library Reference)” 部分中查找到所有模块的全

  • String string.byte string.char string.dump string.find string.format string.gmatch string.gsub string.len string.lower string.match string.rep string.reverse string.sub string.upper 在st

  • Object 对象 属性描述对象 Array 对象 包装对象 Boolean 对象 Number 对象 String 对象 Math 对象 Date 对象 RegExp 对象 JSON 对象

  • 所以你们既是神的选民,圣洁蒙爱的人,就要存怜悯、恩慈、谦虚、温柔、忍耐的心。倘若这人与那人有嫌隙,总要彼此包容,彼此饶恕;主怎么饶恕了你们,你们也要怎样饶恕人。在这一切之外,要存着爱心,爱心就是联络全德的。又要叫基督的平安在你们心里作主,你们也为此蒙召,归为一体,且要存感谢的心。(COLOSSIANS 3:12-15) 标准库(8) JSON 就传递数据而言,XML是一种选择,还有另外一种——JS

  • 你们要靠主常常喜乐;我再说,你们要喜乐。当叫众人知道你们谦让的心。主已经近了。应当一无挂虑,只要凡事藉着祷告、祈求和感谢,将你们所要的告诉神。神所赐出人意外的平安,比在基督耶稣里面保守你们的心怀意念。(PHILIPPIANS 4:4-7) 标准库(7) XML XML在软件领域用途非常广泛,有名人曰: “当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风

  • 弟兄们,我不是以为自己已经得着了,我只有一件事,就是忘记背后,努力面前的,向着标杆直跑,要得神在基督耶稣里从上面召我来得的奖赏。(PHILIPPIANS 3:13-14) 标准库(6) urllib urllib模块用于读取来自网上(服务器上)的数据,比如不少人用Python做爬虫程序,就可以使用这个模块。先看一个简单例子: 在Python 2中,这样操作: >>> import urllib>>

  • 凡所行的,都不要发怨言、起争论,使你们无可指摘,诚实无伪,在这弯曲悖谬的世代作神无瑕疵的儿女。你们显在这世代中,好像明光照耀,将生命的道表明出来。(PHILIPPIANS 2:14-15) 标准库(5) “一寸光阴一寸金,寸金难买寸光阴”,时间是宝贵的。 在日常生活中,“时间”这个术语是比较笼统和含糊的。在物理学中,“时间”是一个非常明确的概念。在Python中,“时间”可以通过相关模块实现。 c

  • 凡事不可结党,不可贪图虚浮的荣耀,只要存心谦卑,各人看别人比自己强。各人不要单顾自己的事,也要顾别人的事。(PHILIPPIANS 2:3-4) 标准库(4) heapq 堆(heap),是一种数据结构,引用维基百科中的说明: 堆(英语:heap),是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。 对于这个新的概念,读者不要心慌意乱或者恐惧,因为它本质上不是新东西,