自定义内核模块读取进程的线性地址

news2024/11/18 9:41:22

打印指定进程的线性地址段

  • 利用procfs查看进程的线性地址
  • 自定义内核模块读取进程的线性地址
    • 编译并加载内核模块

利用procfs查看进程的线性地址

cat /proc/1854/maps

自定义内核模块读取进程的线性地址

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/netdevice.h>

static int hello_init(void) {
        struct task_struct *p;
        struct vm_area_struct *vma;
        printk(KERN_ALERT "init fishing\n");
        for_each_process(p) {
                if (strcmp(p->comm,"a.out") == 0) {
                        printk(KERN_ALERT "%s-->%p\n",p->comm, p->mm);
                        for(vma = p->mm->mmap;vma!=NULL;vma = vma->vm_next) {
                                printk(KERN_ALERT "%lx - %lx\n",vma->vm_start, vma->vm_end);
                        }
                }
        }
        return 0;
}

static void hello_exit(void) {
        printk(KERN_ALERT "exit fishing\n");
}
subsys_initcall(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("shakespeare");
ifneq ($(KERNELRELEASE),)
$(info "2nd")

obj-m := fishing.o

else
#kdir := /lib/modules/$(shell uname -r)/build
kdir := /usr/src/linux-headers-$(shell uname -r)
pwd := $(shell pwd)

all:
        $(info "1st")
        make -C $(kdir) M=$(pwd) modules

clean:
        rm *.ko *.o *.order *.mod.c *.symvers *.mod
endif

编译并加载内核模块

使用dmesg打印日志
在这里插入图片描述
通过对比可知,打印的线性地址与系统提供的procfs中的maps一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1109986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

双线性插值详解

双线性插值的原理网上资料非常多,本文重点介绍双线性插值实现的两种方式: 角对齐(coner_align = True) 和 边对齐(coner_align = False)。两种不能的方式下去实现双线性插值,目标图像中的每个像素点,它是如何计算取值的,本文会通过原理结合代码的方式将实现细节讲清楚。 1…

提高倾斜摄影三维模型顶层合并构建效率的技术方法初探

提高倾斜摄影三维模型顶层合并构建效率的技术方法初探 高效提高倾斜摄影三维模型顶层构建的技术方法有许多&#xff0c;本文将介绍几种常见的方法&#xff0c;并分析它们的优势和适用场景。这些方法包括数据处理与预处理、并行计算与分布式处理、智能化算法与模型优化等。 一、…

使用端口映射实现Spring Boot服务端接口的公网访问与调试

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

13年老鸟整理,测试开发要学什么?测试开发学习路线,一篇概全...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、测试开发具备的…

表单制作软件有哪些?最火的8款表格制作软件?

表单制作软件是指用于创建、设计和管理各种类型的表格和调查问卷的工具。这些软件通常提供丰富的模板、自定义选项和数据分析功能&#xff0c;使用户能够轻松地生成专业级的表单。 以下是8款非常受欢迎的表格制作软件&#xff0c;并对其进行了详细介绍说明。 1. Microsoft Ex…

模块、服务、接口命名示例

一、项目整体架构图示例 二、模块命名规范 1.spring cloud 基础模块命名示例 模块项目名注册中心cloud-eureka网关cloud-zuul配置中心cloud-config-server熔断监控(ui)cloud-hystrix-dashboard健康检查cloud-hystrix-dashboard链路追踪cloud-zipkin-ui 2.基础common模块命名…

【无标题】element select下拉框下拉选项位置不对,显示到旁边,不显示到下拉框底部

磁贴是用iframe引用&#xff0c;下拉框高度过长导致不显示在下面&#xff0c;修改下拉选项的高度 <el-selectpopper-class"custom-drop-select-item minePressure"class"custom-drop-select"v-model"state.selectIndex"filterablevisible-cha…

Spring容器中同名 Bean 加载策略

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是「奇点」&#xff0c;江湖人称 singularity。刚工作几年&#xff0c;想和大家一同进步&#x1f91d;&#x1f91d; 一位上进心十足的【Java ToB端大厂…

PAM从入门到精通(十)

接前一篇文章&#xff1a;PAM从入门到精通&#xff08;九&#xff09; 本文参考&#xff1a; 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构&#xff1a; 更加形象的形式&#xff1a; 五、主要函数详解 8. pam_setcred 概述&#xff1a; 设置…

S/4 HANA 大白话 - 财务会计-5 应收账款具体操作

1.创建供应商主数据 怎么去创建供应商主数据,怎么给分配到对应的账户组? 供应商和业务合作伙伴的关系是啥? 账户类别,账户组,和role角色又都是什么东东? 首先要了解,business partner现在就是你的第三方,客户,供应商或者雇员都可以是一个business partner。而且就算…

Javascript 流程控制 笔记/练习

流程控制 if 分支 单分支 if() 中的条件成立则执行 {} 中的语句&#xff0c;否则不执行 <script>if(条件){语句;} </script>双分支 if() 中的条件成立则执行 if 后{} 中的语句&#xff0c;否则执行 else{} 中的语句 <script>if(条件){语句;}else{语句;} <…

轮转数组------题解报告

题目&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题解&#xff1a; 如果直接暴力双循环会时间超限&#xff0c;所以我选择了一个空间复杂度比较高的方法。直接再创建一个数组&#xff0c;然后对应位置替换&#xff0c;最后把值赋给原…

主打的就是一蠢

var x "abc"; // 不清楚x的用途function a(b, c, d) {// 一堆未注释的代码...// ... }// 混合使用单引号和双引号 var message "Its a beautiful day!";fetch("https://xxx/api/data").then(response > response.json()).then(data > {/…

敏朗公益 · 童心共融:福州市实验幼儿园携手敏朗共同举办活动!

2023年3月31日&#xff0c;福州市敏朗公益服务中心联合福州市实验幼儿园开展“童年童趣童心共融”主题融合活动&#xff0c;让星儿体验幼儿园生活&#xff0c;与普龄儿童一同分享快乐的童年。 本场活动是由福州市鼓楼区民政局、鼓楼区残疾人联合会指导&#xff0c;在第16届世界…

软件测试八股文,面试必备,查漏补缺

前言 时光荏苒&#xff0c;一转眼已踏入2023年&#xff0c;人员就业市场以往的寒冬也貌似有了转暖的迹象&#xff0c;身边大批的就业人员也开始了紧张的备战之中。近几周也和多家合作公司的HR进行了沟通&#xff0c;发现虽然岗位就业情况较去年有所好转&#xff0c;但整体的需…

如何选择适合自己的跨境商城源码

选择适合自己的跨境商城源码是每个想要开展跨境电商业务的企业所面临的重要决策。源码的选择直接关系到商城功能的完整性、运营的便捷性以及未来的可定制性。在众多源码供应商中&#xff0c;我们为您提供以下几点参考&#xff0c;帮助您做出明智的选择。 1. 功能完整性 一个适合…

电脑断电后无法正常启动?这样解决!

“昨天公司遭遇突然的停电&#xff0c;导致无法继续工作&#xff0c;只得提前下班回家。今天回到办公室&#xff0c;电脑却陷入了启动问题。我试图多次重启&#xff0c;希望进入安全模式&#xff0c;但却一直卡在Windows启动进度条&#xff0c;紧接着出现了一个蓝底白字的画面&…

三级等保-linux服务器三权分立设置

安全问题 安全控制点 风险分析 风险等级 标准要求 加固建议 服务器未严格按照系统管理员权限、审计管理员权限、安全管理员权限进行分配管理员账户&#xff0c;未实现管理员用户的最小权限划分。 访问控制 可能存在管理员越权操作的风险 中 d)应授予管理用户所需的最…

如何选择优质的静动态住宅代理IP提供商?

当前&#xff0c;当网络隐私和数据安全备受关注时&#xff0c;住宅代理的使用已成为不可或缺的资源。从网络抓取者和营销人员到安全爱好者和在线安全爱好者&#xff0c;住宅代理在执行任何在线活动时提供基本的匿名性。 然而&#xff0c;并非所有住宅代理提供商都是相同的&…

anaconda中安装pytorch(GPU版)(离线安装)(最简单)

anaconda中安装pytorch&#xff08;GPU版&#xff09;&#xff08;离线安装&#xff09;&#xff08;最简单&#xff09;_anaconda安装pytorch gpu-CSDN博客anaconda里安装pytorch,GPU版本&#xff0c;离线本地安装&#xff0c;新手_anaconda安装pytorch gpuhttps://blog.csdn.…