当动态加载Linux内核驱动程序时,我们如何编写C函数来报告驱动程序模块所在的位置(内存地址)?
这对于Windows来说更多,但是,如果我们为Linux驱动程序改编类似的驱动程序,那会起作用吗?
long sizeOfExe = 0;
文件* fp;
fp = fopen(“ ./ Mini.ko”,“ rb”); //阅读本身
fseek(fp,0L,SEEK_END);
sizeOfExe = ftell(fp);
printf(“此驱动程序模块的大小为:%ld个字节\ n”,sizeOfExe);
int * addressStartOfFile =&fp;
printf(“此驱动程序模块的位置开始于:0x%x \ n”,addressStartOfFile);
printf(“此驱动程序模块的位置结束于:0x%x \ n”,(addressStartOfFile + sizeOfExe));
/ *
该驱动程序模块的大小为:18727字节
该驱动程序模块的位置开始于:0x28ff30
该驱动程序模块的位置结束于:0x2a23cc
* /
最佳答案
当动态加载Linux内核驱动程序时,我们如何编写C
报告驾驶员所在位置(内存地址)的功能
模块正在驻留?
我们编写它以读取(通过popen()
等)shell命令的输出或将其转换为C。
grep'\ [模块名称]'/ proc / k * syms |分类
关于c - 确定驱动程序模块所在的位置(内存地址),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20672524/