驱动接口函数调用过程

2023-11-05

本文就来揭秘一下到底一个驱动的接口函数是如何被调用的:

 

首先我们来反汇编读驱动的程序:

842584-20151124234308421-1530817295.jpg

 

跳转到__libc_read,发现他把r7赋值给33是传过去的参数,然后调用svc指令,进入内核态相应的入口:

842584-20151124234312031-1372578680.jpg

 

接下来就已经进入内核态,入口函数中将存入r7中的3取出。

842584-20151124234316781-237147826.jpg

 

 

 

 

 

然后加载一张表,表名是sys_call_call,根据这个表中内容,断定3到底是对应什么操作:

842584-20151124234319437-1024420565.jpg

 

这个表如下,可以看出表中第三项对应CALL(sys_read),也就是说传进的参数3代表要执行sys_read

 

842584-20151124234327968-2065812638.jpg

 

 

Sys_read对应函数实现如下图:

 

842584-20151124234329593-1210187128.jpg

 

其中的vfs_read实现如下图,他获取了要读的那个文件的file对象,然后调用file->f_op->read,这正是我们写驱动的时候编写的接口函数:

842584-20151124234333281-1458085663.jpg

 

 

 





转载于:https://www.cnblogs.com/dchipnau/p/4993326.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

驱动接口函数调用过程 的相关文章

  • LO Frequency Plan

    概述 LO DIV是位于VCO和mixer之间的模块 其作用是分频和驱动长走线 设计难点在于底噪 不同的band有不同的频率覆盖范围 为了减小VCO的设计难度需要选择合适的分频方案 E UTRA规定的band与频率的对应关系在3GPP或wi
  • GNU/Linux下有多少是GNU的?

    原文地址 http coolshell cn articles 4826 html more 4826 一个葡萄牙的学生写了一篇文章 How much GNU is there in GNU Linux GNU Linux下有多少是GNU的
  • java模拟HTTP请求工具

    import org slf4j Logger import org slf4j LoggerFactory import java io BufferedReader import java io DataOutputStream imp
  • sqli-labs/Less-10

    这一关提示我们使用布尔和时间盲注相结合的做法 我们先去判断一下注入类型 输入1 and 1 2 存在回显 为字符型 输入1 存在回显 而且回显还一模一样 输入1 存在回显 而且回显当然是一摸一样的啦 我怀疑一直都是如此输出 所以根本不能使用
  • j2ee规范认识

    完成了J2EE视频的学习 三个系列的视频感觉走的是那么的艰难 在懵懵懂懂中进行着 在视频进行的时候已经对J2EE以及EJB的大体框架进行笔记记录和框架整理 接下来对在学习过程中的一些关键点进行总结 J2EE是什么 要想知道J2EE是什么就要
  • Open vSwitch流表查找分析

    流表查找过程是Open vSwitch核心中的核心 在此之前 庾志辉写过关于对Open vSwitch 下文简称OVS 源代码分析的系列博客 链接如下 http blog csdn net yuzhihui no1 article deta
  • 【漏洞复现】Microsoft Office MSDT 远程代码执行漏洞 (CVE-2022-30190)

    0x01 Microsoft Office Microsoft Office是由Microsoft 微软 公司开发的一套办公软件套装 常用组件有 Word Excel PowerPoint等 0x02 漏洞简介 该文档使用 Word 远程模
  • 如何连接到虚拟服务器上,虚拟主机如何连接服务器的

    虚拟主机如何连接服务器的 内容精选 换一换 GaussDB DWS 提供的gsql命令行客户端 它的运行环境是Linux操作系统 在使用gsql客户端远程连接GaussDB DWS 集群之前 需要准备一个Linux主机用于安装和运行gsql
  • 你真的知道运维是干嘛的吗?

    文章目录 前言 运维基本能力 运维岗位分类 按照职责划分 按照服务类型划分 按照运维模式划分 按照工作模式划分 按照管理层级划分 按照技术方向划分 按照服务对象划分 按照工作内容划分 按照服务形式划分 按照业务类型划分 按照技术栈划分 按照
  • python selenium页面跳转_Python爬虫之Selenium多窗口切换的实现

    前言 在页面操作过程中有时候点击某个链接会弹出新的窗口 但由于Selenium的所有操作都是在第一个打开的页面进行的 这时就需要主机切换到新打开的窗口上进行操作 WebDriver提供了switch to window 方法 可以实现在不同
  • 如何去实现机械灵巧手玩魔方和弹钢琴_工业级灵巧手与智慧抓取技术

    随着工业机器人的发展以及机器人应用领域的不断扩展 作为末端执行器的机器人夹爪的应用边界也在不断扩展 在工业自动化领域被广泛使用的气动手爪 正在被可精确控制 可数字化管理的新一代末端执行器所替代 编辑 符号整理 Cloud Sunny 机器人
  • “找不到或无法加载主类”该问题出现的一个可能原因

    今天按照教材上的程序 编译运行时 程序编译没有问题 但是运行时 出现 找不到或无法加载主类 的提示 遂网上四处找答案 说什么 1 拼写错误 2 环境变量配置时classpath和path前面未加 下面是我的程序 package myFram
  • vue——echarts柱状图横轴文字太多放不下【处理办法】

    1 如果单纯是文字太多 且中间无法分割开的话 可以采用两种方式 文字倾斜展示 效果 在options配置中的xAxis中配置如下代码 axisLabel interval 0 rotate 40 文字竖直显示 效果 在options配置中的
  • 终于搞定了SHADOWMAP,

    5 5pcf
  • 关于 ChatGPT 必看论文推荐【附论文链接】

    关于 ChatGPT 必看论文推荐 2022年11月 OpenAI推出人工智能聊天原型 ChatGPT 再次赚足眼球 为AI界引发了类似AIGC让艺术家失业的大讨论 ChatGPT 是一种专注于对话生成的语言模型 它能够根据用户的文本输入
  • 情人节用Python画玫瑰花

    用Python turtle 绘制的玫瑰花 效果图 import turtle import time turtle penup turtle setup 1100 1000 turtle hideturtle turtle speed 1
  • tensorRT模型推理时动态shape

    动态shape 所谓动态shape就是编译时指定可动态的范围 L H 推理时可以允许L lt shape lt H 在全卷积网络中我们通常就是有这个诉求的 推理时的shape是可以动态改变的 不一定要限制死 这个动态shape不一定只宽高
  • 有序数组中找到num

    问题 在有序数组中找到num 分析 直接遍历查找均可 但既然是有序数组 则充分利用此条件 采用效率更高的二分法 代码 创建一个随机的有序数组 void Random array int array int num for int i 0 i
  • Fisco技术文档总结3---使用工具

    前言 本文介绍fisco技术文档中的使用工具模块 该模块中将重点介绍开发部署工具和控制台 这都是开发过程中十分常用的 其他的工具是封装的工具 方便开发者使用这里接受一下方便之后使用 开发部署工具 功能 build chain sh脚本用于快
  • 第四届2021美团网络安全 MT-CTF writeup

    第四届2021美团网络安全 MT CTF 文章目录 第四届2021美团网络安全 MT CTF MISC Un ix zip 鱿鱼游戏 Boom Crypto Symbol MISC Un ix zip flag Welc0me Unz1p

随机推荐

  • 【Hadoop】Java API 测试

    目录 一 环境配置 二 eclipse环境设置 三 代码编写 1 引入库 2 Test 3 成功界面 总结 一 环境配置 准备文件 jar包和Windows版本的hadoop2 7 4 复制 Windows版本的hadoop2 7 4文件中
  • 3789 隐藏字符串(枚举 + 递推)

    1 问题描述 给定一个由小写字母构成的字符串 s 我们称字符串 t 隐藏于字符串 s 中 如果它满足 存在一个字符串 s 的子序列 与其一一对应 该子序列的各个元素的下标可以构成一个等差序列 例如 字符串 aab 就隐藏于字符串 aaabb
  • 混淆矩阵,准确率,精确率,召回率,F1值,ROC/AUC曲线的理解

    在机器学习中 对一个模型的学习能力好坏的评估 往往人为判断不容易直接得到结果 这时候就可以根据一些数据指标进行分析评估 对模型 分类器 学习器 的泛化能力进行评估 有衡量模型泛化能力的评价标准 被称为性能度量 性能度量反应了人物需求 在对比
  • ry-ui.js

    调用方式 property function 属性 功能 通用js方法封装处理 Copyright c 2019 ruoyi 当前table相关信息 var table config 当前实例配置 options 设置实例配置 set fu
  • 企业通用人工智能时代已经开启,使用 GPT-4、llama2 和 LangChain 构建的应用程序将如何改变一切

    内容 简介 摘要 第一部分 企业 IT 50 年历史 第二部分 企业 AGI 黎明之前 第三部分 2023 年及以后的企业 AGI 之路 第四部分 我可能错的地方以及为什么它不重要 第五部分 你可以做些什么来准备 每个工作职能都会演变或消失
  • 用audition让声音更加好听

    用audition让声音更加好听 用audition让声音更加好听 用audition让声音更加好听 用audition打声音 点击如下图 选择如下 参数均衡器 把曲线弄成 V 字形 就很好听了 记得在导出之前要点击 应用 这样才生效 如下
  • 服务器硬件测试 如何查看系统信息及测试使用工具

    硬件长稳 一 查看硬件信息 sar sar命令 好一个大宝剑 7750783的技术博客 51CTO博客超全 使用 yum install sysstat 命令安装 sar命令来对系统作一个了解 该命令是系统维护的重要工具 主要帮助我们掌握系
  • 【小5聊】Postman设置环境变量之不同的IP或域名切换变量

    1 点击右上角的齿轮 2 添加环境变量 设置一个名称 比如本地环境 3 点击本地环境 进入添加参数变量和值 4 选择本地环境变量 5 点击请求即可 一句话一感想一心情 版本更新 增加测颜值推荐图文 来体验下句子的魅力
  • 李航感知机对偶形式python代码

    author xinxinzhang import numpy as np def loadData 加载数据 X np mat 3 3 4 3 1 1 Y 1 1 1 return X Y def Gram X 计算Gram矩阵 m n
  • Elasticsearch检索分类深入详解—基础篇

    题记 Elasticsearch中当我们设置Mapping 分词器 字段类型 完毕后 就可以按照设定的方式导入数据 有了数据后 我们就需要对数据进行检索操作 根据实际开发需要 往往我们需要支持包含但不限于以下类型的检索 1 精确匹配 类似m
  • apisix攻击面

    0x00 APISIX 运行环境安装编译 openssl openresty configure prefix usr local openresty with pcre jit with ipv6 without http redis2
  • JSONException: syntax error, expect [, actual string, pos 0, fieldName null

    通过接口拿到了json字符串 然后使用下面的方式解析报错 JSONArray parseArray JSON toJSONString data getAuditDetail 明明是符合规范的格式 但是 后来发现问题的根源就是json字符串
  • javascript 去掉小数末尾多余的零

    最近做项目需要对金额进行千分位处理的同时 保留多位小数 但是 小数部分不得为零 let num1 995092130000000 100000000000 let res1 num1 toFixed 12 document write re
  • python 函数的基础操作,看完大家都可以创建函数 ^o^/

    目录 函数简介 函数返回结果的两种方法 形参的三种类型 必选参数 默认参数 不定长参数 函数返回值 return 内置函数 函数简介 在python里什么是函数 函数又被称为方法 是指某一段聚合在一起 做特定的事情的代码 创建一个函数需要哪
  • typora使用picgo配置sftp上传图片

    mdftp 上传到uploadPath这个目录下 host 0 0 0 0 port 22 username root password uploadPath uploads year month fullName 返回的图片链接为 url
  • AcWing 1353. 滑雪场设计

    农夫约翰的农场上有 N 个山丘 每座山的高度都是整数 在冬天 约翰经常在这些山上举办滑雪训练营 不幸的是 从明年开始 国家将实行一个关于滑雪场的新税法 如果滑雪场的最高峰与最低峰的高度差大于17 国家就要收税 为了避免纳税 约翰决定对这些山
  • idea中 git版本回退

    1 版本回退 之 Reset Type 有四种 1 1 soft 移动本地库HEAD指针 意思就是 回滚后 仅仅是把本地库的指针移动了 而暂存区和你本地的代码是没有做任何改变的 而你上次改动已提交committed到本地库的代码显示是绿色即
  • 《数值分析》-- 拉格朗日插值

    文章目录 问题 一 拉格朗日插值基函数 二 拉格朗日插值多项式 三 n次Lagrange插值多项式余项 习题 总结 问题 一 拉格朗日插值基函数 n 1时一次基函数 两点线性插值问题 问题 即已知函数 f x 在点 x 0 x 0
  • 88. 合并两个有序数组 golang

    88 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2 请你将 nums2 合并到 nums1 中 使 nums1 成为一个有序数组 说明 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 你可以假设 nu
  • 驱动接口函数调用过程

    本文就来揭秘一下到底一个驱动的接口函数是如何被调用的 首先我们来反汇编读驱动的程序 跳转到 libc read 发现他把r7赋值给3 3是传过去的参数 然后调用svc指令 进入内核态相应的入口 接下来就已经进入内核态 入口函数中将存入r7中