faxiang1230 Blog

IT渣男

为什么开始写博客 People have been writing journals and diaries since writing was invented. Writing down thoughts helps you to organize them, re-think them and archive them. The last point is specifical...

Intel vs. AT&T 汇编语法

Intel vs. AT&T 汇编语法 翻译自:http://staffwww.fullcoll.edu/aclifton/courses/cs241/syntax.html x86(32位和64位)有两种语法:AT&T和intel,有些汇编器只能支持一种,有些汇编器可以两种都支持。 在标准linux和其他的在线资源上主要使用AT&T语法,但是我们(斯坦福大...

kdump基础

kdump基础 前言 做软件开发的同学会花费大约1/3的时间来进行调试,一个软件开发人员的技能包括:coding,调试和设计.一个友好的开发环境中必然提供了相当多的调试工具给开发人员,例如linux环境下C/C++有基于信号的core dump文件,java、python等都有自己的dump机制,而kdump就是为内核开发而生的dump机制,是kernel dump的缩写。而kdump比较重...

通过hijack了解bio

通过hijack了解bio 背景 bio是block io,它是一个描述硬盘里面的位置与page cache的页对应关系的数据结构,每个bio对应的 硬盘里面一块连续的位置,每一块硬盘里面连续的位置,可能对应着page cache的多页,或者一页, 所以它里面会有一个bio_vec *bi_io_vec的表。 而每个bio_vec都只能描述一个页内数据的连续的数据的偏移和长度: 通过b...

linux下的各种uid,gid,sid

linux下的各种uid,gid,sid uid:用户id,一般用在两个地方:文件的拥有者,启动该进程的用户 gid:用户组id,一般用在两个地方:文件的拥有者,启动该进程的用户 euid:这个只有进程拥有的属性,进程当前的有效用户。一般情况下是和进程的uid相同的,但是当可执行程序带有s标志时,euid就变成了该可执行程序拥有者的uid suid(set save-user-id):当该程...

Linux能力(capability)机制的继承

Linux能力(capability)机制的继承 转发https://www.cnblogs.com/gordon0918/p/5328436.html 1、Linux能力机制概述 在以往的UNIX系统上,为了做进程的权限检查,把进程分为两类:特权进程(有效用户ID是0)和非特权进程(有效用户ID是非0)。特权进程可以通过内核所有的权限检查,而非特权进程的检查则是基于进程的身份...

Hooking Linux Kernel Functions

Looking for the Perfect Solution

内核hook 原文:https://www.apriorit.com/dev-blog/544-hooking-linux-functions-1 我们最近在开展linux系统上安全相关的工作,在上面我们需要hook内核中重要的函数调用,例如打开文件、创建进程。 我们需要这样一个项目来监控系统的活动并且阻塞可疑的进程。 实际上,最后我们采用了一种高效的方式来ho...

EPOLL Linux内核源代码实现原理分析

EPOLL内核源代码实现原理分析 转自http://www.blog.chinaunix.net/uid-26339466-id-3292595.html epoll的实现主要依赖于一个迷你文件系统:eventpollfs。此文件系统通过eventpoll_init初始化。 在初始化的过程中,eventpollfs create两个slub分别是:epitem和ep...

Hooking Linux Kernel Functions, Part 2

How to Hook Functions with Ftrace

ftrace来进行内核hook,part2 https://www.apriorit.com/dev-blog/546-hooking-linux-functions-2 Ftrace是内核中的一种trace框架。但是我们对于找到了一种新的方法,可以通过ftrace来监控系统,当发现可疑进程的时候能够阻止它的运行。事实证明ftrace可以使你能够在不重新编译内核的...

内核hung debug

内核hung debug 内核hung检测 Documentation/lockup-watchdogs.txt 两种hung的原因和检测方法: softlockup:抢占被长时间关闭而导致进程无法调度: 本来有个线程可以周期性调度来进行喂狗一类的动作,但是由于锁死无法被调度到,所以相应喂狗的动作无法 完成,硬件超时产生中断来打印当前堆栈信息.原理就是优先级:进程优先级<软中断&l...