20135337——Linux实践二:模块】的更多相关文章

一.编译&生成&测试&删除 1.编写模块代码,查看如下 gedit 1.c(编写) cat 1.c(查看) MODULE_AUTHOR("Z") MODULE_DESCRIPTION(模块用途的简单描述); MODULE_VERSION(模块的版本字符串); MODULE_ALIAS(模块的别名); 2.查看版本信息 3.写Makefile并查看 obj-m :这个变量是指定你要声称哪些模块模块的格式为 obj-m := <模块名>.o module…
Linux及安全实践二--模块 一.模块的编译.生成.测试.删除 1.编写模块代码 编写:gedit 3.c 2.编写Makefile obj-m :这个变量是指定你要声称哪些模块模块的格式为 obj-m := .o modules-objs :这个变量是说明声称模块modules需要的目标文件 格式要求 -objs := KDIR :这是我们正在运行的操作系统内核编译目录.也就是编译模块需要的环境 M= :指定我们源文件的位置 PWD :这是当前工作路径$(shell )是make的一个内置函…
模块实践 --关于模块代码部分 ---首先是.c代码: 一定会用到的函数有这几个:module_init().module_exit().MODULE_LICENSE() 会用到的头文件:module.h.kernel.h.init.h ---Makefile代码: 有几个地方需要注意的: obj-m :=test.o 这里的.o文件的命名,是以你.c文件同名,编译为相应的.o文件 all: make -C $(KDIR) M=$(PWD) modules KDIR: 正在运行的操作系统内核编译…
一.基本模块的实现: 1.进程遍历打印输出 2.简单地编写一个新的系统调用(替换空的系统调用号) 基本模块学到的知识点: 1.相关指令 make oldconfig 配置内核 make 编译内核 make modules_instal 编译安装内核模块 make install 引导新编译的内核 uname –a 查看内核版本 lsmod 查看加载的模块 insmod 加载模块 rmmod 卸载模块 dmesg 显示开机信息 基础模块一:系统调用(替换空的233) 文件Makefile obj-…
20135218 姬梦馨 1.编写模块代码 模块构造函数:执行insmod或modprobe指令加载内核模块时会调用的初始化函数.函数原型必须是module_init(),括号内是函数指针 模块析构函数:执行rmmod指令卸载模块时调用的函数.函数原型是module_exit() 头文件module.h,必须包含此文件: 头文件kernel.h,包含常用的内核函数: 头文件init.h包含宏_init和_exit,允许释放内核占用的内存. 写一个简单的代码,用来向内核输出一段文字. 3.编译模块…
标签(空格分隔): 20135321余佳源 一.实践原理 Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一个单内核.单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷. Linux模块可以通过静态或动态的方法加载到内核空间,静态加载是指在内核启动过程中加载:动态加载是指在内核运行的过程中随时加载. 一个模块被加载到内核中时,就成为内核代码的一部分.模块加载入系统时,系统修改内核中的符号表,将…
3.编译并安装内核与模块 sudo make bzImage –j3         编译内核 sudo make modules –j3         编译模块 sudo make modules_install –j3   安装模块 sudo make install –j3           调用make开始编译 (漫长的等待…… 如果这里出现错误,在排除错误之后一定要清理临时文件make clean,再重新编译.…
ELF文件格式分析 可重定位文件 十六进制形式显示内容 显示各个段.符号表相关信息 查看各个段信息 elf文件头信息 段表 符号表信息 查看堆栈 具体分析 1.ELF文件头信息(小字节优先,均十六进制) 第一行: 7f45 4c46 (DEL E L F) 0101 (32位对象 小端法) 0100(文件头版本) 0000 0000 0000 0000 第二行: 0001(重定位文件) 0003(intel80386处理器) 0000 0001(当前版本) 0000 0000(没有入口点) 00…
程序破解 查看 运行 反汇编,查看汇编码 对反汇编代码进行分析: 在main函数的汇编代码中可以看出程序在调用"scanf"函数请求输入之后,对 [esp+0x1c] 和 [esp+0x18] 两个内存单元的内容进行了比较,其作用应该是对比用户输入和预设口令.即预设口令被存放与局部变量 [esp+0x1c]中. 动态调试 运行目标程序,查看进程信息 将gdb依附到目标进程:attach 输入bt查看进程的运行栈情况,输入frame 7 进入main函数的栈帧: 查看[esp+0x1c]…
ELF文件格式简单分析 (具体分析见上一篇ELF文件格式32位系统) ELF-header 第一行: 457f 464c :魔数: 0201 :64位系统,小端法 01 :文件头版本 剩余默认0: 第二行: 0001 :重定位文件 003e :x86-64处理器体系结构 0000 0001 :当前版本 0000 0000 0000 0000 :没有入口点 第三行: 0000 0000 0000 0000 :没有程序头表 0000 0000 0000 0308 :段表偏移地址 第四行: 0000…