很多时候,我们要监控系统状态,即监控系统cpu负载、进程状态等情况,如果我们在 Linux 应用层,我们有很多方式,命令行中常用 top、ps 命令,代码中,我们可以使用 popen 函数去执行一个 top 命令,获取返回值。或者我们直接读写 /proc下面的文件,都可以达到目的。
多线程调试的主要任务是准确及时地捕捉被调试程序线程状态的变化的事件,并且GDB针对根据捕捉到的事件做出相应的操作,其实最终的结果就是维护一根叫thread list的链表。上面的调试命令都是基于thread list链表来实现的,后面会有讲到。
CZGL.SystemInfo 是一个支持 Windows 和 Linux 的资源信息获取库,用于获取系统环境、机器资源信息、系统资源使用情况。
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件)、 glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对 Linux 服务器的监控。 本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写。 Python 版本说明 Python 是由 Guido van Rossum 开发的、可免费获得的、非常高级的
最近再弄进程管理相关的工作,因此必要的就涉及到各种系统下关于进程的管理。 这里简单的介绍下: 如何在Java中执行命令 在windows下肯定是dos命令了,而在linux则为shell命令。执行的方式差不多相同: 方法1:Runtime windows版本: Process process = Runtime.getRuntime().exec("ipconfig /all"); Linux版本: Process process = Runtime.getRuntime().exec("ifcon
写在前面:今天开始尝试写写除Vim外的其他内容,仍然是以技术为主,可能涉及的内容包括Linux、正则表达式、gdb、makefile等内容,不知道小伙伴们有没有兴趣看呢?不管如何,也算是我自己的知识沉淀吧~
psutil(进程和系统实用程序)是一个跨平台的库,用于 在Python中检索有关运行进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,分析和限制流程资源以及运行流程的管理。它实现了UNIX命令行工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。psutil目前支持以下平台:
该漏洞是 Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射。黑客可以在获取低权限的的本地用户后,利用此漏洞获取 其他只读内存映射的写权限,进一步获取 root 权限。
近日,火绒安全团队截获蠕虫病毒“MinerGuard”新变种,严重威胁企业用户。该病毒通过网络服务器漏洞以及暴力破解服务器的方式迅速传播,并且可跨平台(Windows、linux)交叉感染。病毒入侵电脑后,会释放挖矿病毒挖取门罗币。此外,病毒作者可随时通过远程服务器更新病毒模块,甚至利用以太坊(区块链平台)钱包更新病毒服务器地址。
本篇博客调用 sbrk 系统调用函数 , 申请并修改 堆内存 , 并在 /proc/pid/maps 中查看该进程的 堆内存 ;
总体而言,Linux操作系统是一个强大、灵活且可定制的操作系统,广泛应用于服务器、嵌入式系统、超级计算机等各种领域。
在做性能测试中不断思考java应用,性能怎么观察,怎么通过方法定位到代码,是否有通用步骤,通过查找资料与参考前人的知识总结,才有如下文章,话说知道不等于会,会不等于能运用,只有不断有意识的去练习才能掌握。总之,这属于基础技能,有了这层基础,再去使用高级版的工具(如阿里的Arthas),也就顺风顺水,水到渠成。
本篇聊一聊 新的主题:《反弹shell-逃逸基于execve的命令监控》,打算写一个专题,预估可以写三篇,内容确实有点多,也是最近研究了一些有意思的东西,想给大家分享一下。喜欢的话,请大家一定点在看,并分享出去,算是对我原创最大的支持了。
NanoDump是一款功能强大的MiniDump转储文件提取工具,在该工具的帮助下,广大研究人员可以轻松转储LSASS进程中的MiniDump数据。
运维工程师经常使用 Python 编写脚本程序来做监控系统运行的状态。如果自己手动使用 Python 的标准库执行系统命令来获取信息,会显得非常麻烦。既要兼容不同操作系统,又要自己处理解析信息。为了解决的痛点问题,psutil 就横空出世。它的出现无疑是运维工程师的福音。运维小伙伴通过它执行一两行代码即可实现系统监控。
环境变量 是一个即陌生又熟悉的词,说陌生是因为大多数普通用户都接触不到 环境变量 配置,说熟悉是因为很多程序又都离不开 环境变量,比如编写 Java 时需要提前安装 jdk,配置好 Java 的环境,才能正常编写代码,python 也是需要配置编码环境;而在我们的 Linux 中也有环境变量,由 环境变量 构成的集合称做 环境变量表;我们还可以调整 进程 的优先级,使得 进程 运行更加灵活
在 Linux 系统中,文件锁定是一种对文件进行保护的方法,可以防止多个进程同时访问同一个文件,从而导致数据损坏或者冲突。文件锁定命令是一组用于在 Linux 系统中实现文件锁定操作的命令,它们可以用于对文件进行加锁或解锁,控制文件的访问权限,保证系统的稳定性和安全性。在本文中,我们将详细介绍 Linux 中的文件锁定命令,包括锁定的类型、命令的使用方法、常见问题及解决方法等内容。
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件)、glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对 Linux 服务器的监控。 本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写。
笔者的九篇反射系统文章已经完结,但是笔者会持续更新反射在日常撸码中的应用。 本篇内容主要是 .NET Core 获取运行环境信息、利用反射更加方便地处理数据。 本篇内容有:RuntimeInformation、Environment、反射、特性等。 本篇代码下载地址 https://gitee.com/whuanle/reflection_and_properties/blob/master/反射特性应用场景1.cs
本篇聊一聊 新的主题:《反弹shell-逃逸基于execve的命令监控》,打算写一个专题,预估可以写三篇,内容确实有点多,也是最近研究了一些有意思的东西,想给大家分享一下。喜欢的话,请大家一定点在看,并分享出去,算是对我原创最大的支持了。如何想看新方法,直接到最后。
大家好,我们是 NOP Team,今天这篇文章要介绍的是如何处置 ICMP/DNS 隧道,处理思路是一致的,但 icmp 更具有代表性,所以下文均以 icmp 隧道视角讲述
前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux的下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好的理解进程的含义。
dev:device——存放外接设备(磁盘,光盘),不能被直接使用,需要被挂载——#mount
老板有个奇怪的需求,通过一个 kubeconfig 文件,获取主机的各种状态信息,比如进程列表、进程状态等。
shell =false 意思是command 使用的不是linux shell指令,如果要用shell 指令如ls 要将false 变成true, 通过指定stderr=subprocess.STDOUT,将子程序的标准错误输出重定向到了标准输出,以使我们可以直接从标准输出中同时获取标准输出和标准错误的信息。 p.poll() 返回子进程的返回值,如果为None 表示 c++子进程还未结束. p.stdout.readline() 从 c++的标准输出里获取一行.
进程切换,又称为任务切换、上下文切换、或者任务调度。本文就研究Linux内核的进程切换。我们首先理解几个概念。
CZGL.SystemInfo 是一个支持 Windows 和 Linux 等平台的能够获取机器硬件信息、采集机器资源信息、监控进程资源的库。
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
ptrace 函数 : 在 C 标准库 中有一个 ptrace 函数 , 该函数是一个系统调用方法 , 可以监视进程执行 , 查看 / 更改 被监视进程的 内存 和 寄存器 情况 , 常用于断点调试 ;
Eth0表示Linux中的一个网卡,eth0是其名称。Lo(loop,本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡名称。
参考文章 https://github.com/mzlogin/awesome-adb
有些书上对进程的描述是这样一句话:进程是在内存中的程序。一个运行起来(加载到内存)的程序称作进程。
ASLR,应为全称为Address Space Layout Randomization,即地址空间布局随机化。它是一种概率性安全防御机制,由PaX团队于2001年正式提出,并在2005年开始引入到Linux内核之中。ASLR能够在每次运行可执行文件的时候通过基地址随机映射的方式来为其随机分配地址空间。ASLR存在的目的,就是为了防止那些需要了解内存地址来利用内存崩溃漏洞的攻击行为。
标示符(pid): 描述本进程的唯一标示符,用来区别其他进程; 状态(status): 任务状态,退出代码,退出信号等; 优先级(PRI): 相对于其他进程的优先级; 程序计数器: 程序中即将被执行的下一条指令的地址; 内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器; I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表; 记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
Linux是一个多任务、多用户的操作系统,因此它允许多个进程同时运行而不相互干扰,进程是Linux操作系统的重要基本概念之一,进程是程序的执行实例,在操作系统中执行不同的任务。Linux为我们提供了一个名为ps的实用程序,用于查看与系统上的进程相关的信息,它是process status进程状态的缩写,ps命令用于列出当前正在运行的进程,它们的pid以及一些其他信息取决于不同的选项,它从/proc文件系统中的虚拟文件读取进程信息,/proc包含虚拟文件,这就是它被称为虚拟文件系统的原因,process status命令ps显示有关活动进程的信息,类似于windows的任务管理器,每个操作系统的ps版本都略有不同,因此若要是需要获取详细情况则需要查阅操作系统的wiki。
Linux进程管理和作业管理的另外几种管理命令:vmstat,dstat,pmap,glances,kill
前三个数字是1、5、15分钟内进程队列中平均进程数,包括正在运行的进程+准备好等待运行的进程。
用于查看 Linux 文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。如:
超线程技术(Hyper-Threading):就是利用特殊的硬件指令,把两个逻辑内核(CPU core)模拟成两个物理芯片, 让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。 我们常听到的双核四线程/四核八线程指的就是支持超线程技术的CPU.
在linux系统环境的测试开发过程中,我们常常需要评估系统性能,尤其在性能测试工作中,我们需要通过系统资源的监控,从而分析定位系统的性能瓶颈。
作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
ps 是一个常用的 Unix/Linux 命令,用于显示当前系统中运行的进程信息。它的名称来源于 “process status”(进程状态)的缩写。通过 ps 命令,您可以查看正在运行的进程的各种信息,例如进程 ID、CPU 使用情况、内存占用、进程状态等。
Linpmem是一款功能强大的Linux物理内存提取工具,该工具专为x64 Linux设计,可以帮助广大研究人员在执行安全分析过程中快速读取Linux物理内存数据。
Foothold,就是我们拿到内网中一台主机权限,作为内网渗透的突破口,我们所有的操作,包括流量转发,端口扫描,漏扫等操作,都会利用此主机为我们搭桥铺路,为以后的内网横向打下坚实的基础。
题图来自 My second impression of Rust and why I think it's a great general-purpose language![1]
共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。
领取专属 10元无门槛券
手把手带您无忧上云