摘要: Makefile是由target和命令构成的,最简单的Makefile: build: gcc test.c -o test 然后执行 make build 就会执行gcc这条命令,但是一般推荐先将源文件构建为对象文件,然后再统一编译为可执行文件 build: test.o gcc test.o - 阅读全文
posted @ 2024-10-14 21:52 c3n1g 阅读(39) 评论(0) 推荐(0)
摘要: glibc下载地址:https://mirrors.nju.edu.cn/gnu/libc/ 首先需要安装glibc需要的依赖 sudo apt-get install gcc make gawk bison 然后开始编译 mkdir build cd build ../configure --pr 阅读全文
posted @ 2024-10-13 18:23 c3n1g 阅读(60) 评论(0) 推荐(0)
摘要: RAII 目前来说主流的资源管理有三种方式: 手动管理:C语言、Zig语言 垃圾回收:Java语言、Go语言 RAII/所有权机制:C++、Rust RAII模式全称是Resource Acquisition Is Initialization(资源获取即初始化),是由C++之父提出的一种编程思想, 阅读全文
posted @ 2024-10-10 22:48 c3n1g 阅读(81) 评论(0) 推荐(0)
摘要: 有时候在写C语言项目的时候会需要用到汇编代码直接操作寄存器、栈之类更加底层的东西,所以在这里写一下C和汇编混合编程的几种方法(Windows和Linux需要分开讨论) Windows Visual Studio Windows下常用的开发环境是Visual Studio,对于x86来说vs默认支持内 阅读全文
posted @ 2023-12-21 23:24 c3n1g 阅读(751) 评论(0) 推荐(0)
摘要: 0x01 介绍 堆块重叠是借助堆溢出来修改chunk的size字段让其包含多个chunk,然后就可以实现一些非法的操作,比如泄露修改chunk的fd指针。 之所以能够完成重叠实际上和free函数有关,由于chunk释放的时候只会检查nextchunk的size字段是否合法,而nextchunk的获取 阅读全文
posted @ 2023-09-10 16:58 c3n1g 阅读(187) 评论(0) 推荐(1)