• Linux环境编程与内核之进程间通信

    概述在Linux系统中,有时候需要多个进程相互协作,共同完成某项任务。进程之间或线程之间有时候需要传递消息,有时候需要同步来协调彼此的工作。接下来讲述Linux中的进程间通信(interprocess communication,或者IPC)。 讲信号时曾提到,信号也是进程间通信的一种机制,尽管其主要作用不是这个。一个进程向另外一个进程发送信号,传递的信息是信号编号。当采用sigqueue函...
  • Linux环境编程与内核之线程

    线程和进程在Linux下,程序或可执行文件是一个静态的实体,它只是一组指令的集合,没有执行的含义。进程是一个动态的实体,有自己的生命周期。线程是操作系统进程调度器可以调度的最小执行单元。进程和线程的关系如图: 一个进程可能包含多个线程,传统意义上的进程,不过是多线程的一种特例,即该进程只包含一个线程。为什么要有多线程?举个生活中的例子,这就好比去银行办理业务。到达银行后,首先找到领导的机器...
  • Linux环境编程与内核之信号

    信号概念信号是一种软件中断,用来处理异步事件。内核递送这些异步事件到某个进程,告诉进程某个特殊事件发生了。这些异步事件,可能来自硬件,比如访问了非法的内存地址,或者除以0了;可能来自用户的输入,比如shell终端上用户在键盘上敲击了Ctrl+C;还可能来自另一个进程,甚至有些来自进程自身。信号的本质是一种进程间的通信,一个进程向另一个进程发送信号,内核至少传递了信号值这个字段。实际上,通信的...
  • C语言编程

    前言如果你是一个刚开始学C语言的小白,那么这篇文章可能并不十分适合你(但结尾放了几个C语言的中小项目,感兴趣的同学可以跟着看一下),本文主要聚焦于C语言的一些陷阱和缺陷,我的本职工作是二进制安全研究,关于这些缺陷导致的致命问题也写了很多文章(Pwn系列)。本文讨论的主要包括指针问题,C的语法糖,线程安全问题,系统编程问题,建议的编程风格和习惯等内容。这里编程部分以利用为主,如果你想深究其原理...
  • 符号执行

    Angr简介本文主要通过angr_ctf入门 angr。 符号执行 符号执行 (Symbolic Execution)是一种程序分析技术,它可以通过分析程序来得到让特定代码区域执行的输入。顾名思义,使用符号执行分析一个程序时,该程序会使用符号值作为输入,而非一般执行程序时使用的具体值。在达到目标代码时,分析器可以得到相应的路径约束,然后通过约束求解器来得到可以触发目标代码的具体值。 Angr...
  • Linux环境编程与内核之进程

    前言在Linux内核源码分析进程一篇中,讲解了内核中进程的实现原理,本文从开发角度来审视进程。 进程环境程序的开始12345678910111213141516171819202122232425262728293031323334// source#include <stdlib.h>#include <stdio.h>static void __attribute...
  • Linux内核分析之进程管理

    进程原理及系统调用参考链接-Linux中国 进程四要素 要有一段程序供该进程运行 进程专用的系统堆栈空间 进程控制块 (PCB),具体实现是task_struct结构 有独立的存储空间 只具备前三点可称之为线程,完全没有用户地址空间的被称为内核线程,共享用户地址空间的被称为用户线程。 进程一般分为两大类:实时进程和普通进程。实时进程与普通进程的根本不同之处:如果系统中有一个实时进程且可运行...
  • Linux环境编程与内核之文件与IO

    内核文件表文件 Linux内核将一切视为文件,既可以是事实上的真正的物理文件,也可以是设备、管道,甚至还可以是一块内存。狭义的文件是指文件系统中的物理文件,而广义的文件则可以是Linux管理的所有对象。这些广义的文件利用VFS机制,以文件系统的形式挂载在Linux内核中,对外提供一致的文件操作接口。 文件描述符 文件描述符是一个非负整数,其本质就是一个句柄,所以也可以认为文件描述符就是一个文...
  • 渗透手札之内网穿透

    内⽹穿透内⽹穿透,也即 NAT 穿透,进⾏ NAT 穿透是为了使具有某⼀个特定源 IP 地址和源端⼝号的数据包不被 NAT 设备屏蔽⽽正确路由到内⽹主机。 代理概述代理其实就是⼀个中介,A和B本来可以直连,中间插⼊⼀个C,C就是中介,比如Brupsuite。 Socks协议中⽂意思:防⽕墙安全会话转换协议,⼯作在OSI参考模型的第5层(会话层)。它是⼀种可以穿透防⽕墙的协议,因为Socks介...
  • 渗透手札之信息收集

    概述信息收集是渗透测试技术的第一个也是最重要的步骤。工具大家可以自行查找,不只文中提到的工具,也可以在公众号或者github上找一些开源开源的武器库。 被动信息收集被动信息收集简介指通过公开渠道的可获得信息,与目标系统或者主机不产生直接的信息交互,以尽可能避免留下任何痕迹的信息收集方法。 被动信息收集的内容 IP地址段 域名信息 邮件地址 文档图片数据 公司地址 公司组织架构 联系电话&#x...
123414