本文主要分析内核中与调试相关的几个内核函数。 首先是NtCreateDebugObject函数,用于创建一个内核调试对象,分析程序可知,其实只是一层对ObCreateObject的封装,并初始化一些结构成员而已。 我后面会写一些与window对象管理方面的笔记,会分析到对象的创建过程。 29号写的w ...
分类:
数据库 时间:
2016-03-31 01:56:54
阅读次数:
1792
首先,先稍微了解系统调用的概念:
系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序,如果没有系统调用和内核函数,用户将不能编写大型应用程序,及别的功能,这些函数集合起来就叫做程序接口或应用编程接口(ApplicationProg...
分类:
其他好文 时间:
2016-03-29 10:40:43
阅读次数:
212
潘恒 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、使用gdb跟踪分析一个系统调用内核函数 1.增加系统调用 1).先执行rm menu -rf,强制删除原有的menu文件夹,使 ...
分类:
其他好文 时间:
2016-03-26 21:59:46
阅读次数:
166
第五章读书笔记 第一部分:内核通信桥梁 系统调用 系统调用解析: 操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。系统调用把应用 ...
分类:
其他好文 时间:
2016-03-26 15:36:23
阅读次数:
133
分析system_call中断处理过程 攥写人:杨光 学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-100 实验要求: 使用gdb跟踪分析一个系统调用内核函数(您上 ...
分类:
其他好文 时间:
2016-03-26 14:01:08
阅读次数:
228
20135313吴子怡.北京电子科技学院 ①更新menu代码到最新版 ②在代码中加入C函数、汇编函数 ③在main函数中加入makeconfig ④make rootfs ⑤可以看到qemu中增加了我们先前添加的命令: ⑥分别执行新增的命令 ①进入gdb调试 ②设置断点,继续执行: ③相对应的得到这
分类:
数据库 时间:
2016-03-23 19:44:55
阅读次数:
208
一.实验原理 1.1系统调用的意义 (1)把用户从底层的硬件编程中解放出来 (2)极大的提高了系统的安全性 (3)使用户程序具有可移植性 1.2系统调用过程 (1)当用户态进程调用一个系统调用时,CPU切换到内核态并开始执行一个内核函数。 (2)在Linux中是通过执行int $0x80来执行系统调
调试事件的发送流程 浏览目录 调试子系统服务器将消息发给调试器的过程 调试子系统在内核函数用于描述和传递调试消息的结构 调试子系统控制被调试进程详细过程 调试子系统和调试器之间用于描述和传递调试消息的结构 调试事件的产生和传递 创建调试对象 设置调试对象 传递调试对象 清除调试对象 -1 调试子系统
分类:
其他好文 时间:
2016-03-09 15:53:40
阅读次数:
187
所有的系统调用,基于都可以在它的名字前加上“sys_”前缀,这就是它在内核中对应的函数。比如系统调用open、read、write、poll,与之对应的内核函数为:sys_open、sys_read、sys_write、sys_poll。一、内核框架:对于系统调用poll或select,它们对应的内
分类:
系统相关 时间:
2016-02-26 16:52:32
阅读次数:
227
获得内核函数地址的四种方法 本文以获取内核函数 sys_open()的地址为例。 1)从System.map文件中直接得到地址: $ grep sys_open /usr/src/linux/System.map 2)使用 nm 命令: $ nm vmlinuz | grep sys_open 3)
分类:
其他好文 时间:
2016-02-16 16:46:28
阅读次数:
138