简介近期在阅读鸿蒙liteOS_a,由于是初次探索内核的奥秘。将一些阅读的心得进行分享。希望能在作为笔记的同时,也能帮助更多人学习。感谢图灵大佬的注释项目,使我能够更加快速的理解。https://weharmony.github.io/核心模块核心模块位于:kernel->base->core其中包括:los_bitmap.c用于位操作,改变标志位。los_process.c用于控制并发、并行、单核多进程、多核多线程的管理los_sortlik.c用于排序los_swtmr.c用于定时器los_sys.c用于时间管理,转换秒与毫秒,了解当前系统运行时间los_task.c用于任务状态管理,一个
1,系统版本说明:ARM鲲鹏920 cat/etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu18.04.5LTS"2,将source.list中的deb-src打开#默认注释了源码镜像以提高aptupdate速度,如有需要可自行取消注释debhttp://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/focalmainrestricteduniversemultiversedeb-srchttp://
在某些时候我们需要读写的进程可能存在虚拟内存保护机制,在该机制下用户的CR3以及MDL读写将直接失效,从而导致无法读取到正确的数据,本章我们将继续研究如何实现物理级别的寻址读写。首先,驱动中的物理页读写是指在驱动中直接读写物理内存页(而不是虚拟内存页)。这种方式的优点是它能够更快地访问内存,因为它避免了虚拟内存管理的开销,通过直接读写物理内存,驱动程序可以绕过虚拟内存的保护机制,获得对系统中内存的更高级别的访问权限。想要实现物理页读写,第一步则是需要找到UserDirectoryTableBase的实际偏移地址,你一定会问这是个什么?别着急,听我来慢慢解释;在操作系统中,每个进程都有一个KPR
目录一、预备知识1.1什么是内核模块?1.2Linux内核模块组成部分二、源码编写1.1hello.c源码编写1.2Makefile编写三、源码编译3.1make编译3.2insmod加载内核模块3.3rmmod移除内核模块3.4查看内核模块3.4.1lsmod命令3.4.2cat/proc/modules3.4.3ls/sys/module/hello/3.5dmesg查看模块输出 四、小结相关代码下载链接一、预备知识1.1什么是内核模块? Linux内核模块(LKM)是一些在启动的操作系统内核需要时可以载入内核执行的代码块,不需要时由操作系统卸载。它们扩展了操作系统内核功能却
目录一、预备知识1.1什么是内核模块?1.2Linux内核模块组成部分二、源码编写1.1hello.c源码编写1.2Makefile编写三、源码编译3.1make编译3.2insmod加载内核模块3.3rmmod移除内核模块3.4查看内核模块3.4.1lsmod命令3.4.2cat/proc/modules3.4.3ls/sys/module/hello/3.5dmesg查看模块输出 四、小结相关代码下载链接一、预备知识1.1什么是内核模块? Linux内核模块(LKM)是一些在启动的操作系统内核需要时可以载入内核执行的代码块,不需要时由操作系统卸载。它们扩展了操作系统内核功能却
让我们继续在《内核读写内存浮点数》的基础之上做一个简单的延申,如何实现多级偏移读写,其实很简单,读写函数无需改变,只是在读写之前提前做好计算工作,以此来得到一个内存偏移值,并通过调用内存写入原函数实现写出数据的目的。以读取偏移内存为例,如下代码同样来源于本人的LyMemory读写驱动项目,其中核心函数为WIN10_ReadDeviationIntMemory()该函数的主要作用是通过用户传入的基地址与偏移值,动态计算出当前的动态地址。函数首先将基地址指向要读取的变量,并将其转换为LPCVOID类型的指针。然后将指向变量值的缓冲区转换为LPVOID类型的指针。接下来,函数使用PsLookupPr
流程图地址: https://gitee.com/lwleen/hm水平有限,仅供参考 一定要以实际的开源代码为准.系统调用(软中断 SVC管理模式)概述:将runtask寄存器完整的保存下来系统调用处理跳转到信号处理函数示例:sys_call3(__NR_execve,"/bin/init",0,0)-------引发一个SVC异常传入参数-----R7中是调用号__NR_execveR0R1R2R3是参数_osExceptSwiHdl:@此函数是内核函数,SVC管理模式异常,使用内核堆栈---SVC堆栈SRSFD#CPSR_SVC_MODE!@CPSR_SVC_MODE=0x13保存CP
系列文章操作系统权限提升(一)之操作系统权限介绍操作系统权限提升(二)之常见提权的环境介绍注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!!!Windows系统内核溢出漏洞提权介绍溢出提权是指攻击者利用系统本身或系统中软件的漏洞来获取Windows操作系统System权限,其中溢出,提权又分为远程溢出和本地溢出。远程溢出需要与远程服务器建立连接,然后根据系统漏洞使用相应的溢出程序获取远程服务器的Windows操作系统Systen权限。本地溢出是主流的提权方式,通常需要向服务器上传本地溢出程序,然后在服务器执行,如果系统存在漏洞,那么将会溢出获得Windows操作系统System权限
linux内核接口atomic_long_try_cmpxchg_acquire详解1atomic_long_try_cmpxchg_acquire/release1.1atomic_long_try_cmpxchg_acquire1.2atomic_long_try_cmpxchg_release2arch_atomic64_cmpxchg_acquire/release2.1arch_atomic64_cmpxchg_acquire/release定义2.2atomic64_cmpxchg_acquire/release2.3instrument_atomic_read_write2.4a
1.找出已安装的所有版本 dpkg-l|greplinux-image- dpkg-l|greplinux-headers-2.删除 sudoapt-getpurgelinux-image-3.最后更新grub启动项 sudoupdate-grub小技巧:如果内核太多,可以批量删除,花括号里是需要删除的 sudoapt-getpurgelinux-image-3.19.0-{22,23,25.26}4.也可以用如下方式 sudorm-rf/lib/modules/2.6.37.6 sudorm-rf/usr/src/linux-headers-2.6.37.6 sudorm/boot/*2.6