linux驱动开发
文章平均质量分 80
qq964541543
对科技爱好者你有多高我就想最多高
展开
-
动态度量,内核获取代码段方式
获得内核函数地址的四种方法获得内核函数地址的四种方法本文以获取内核函数 sys_open()的地址为例。 1)从System.map文件中直接得到地址: $grep sys_open /usr/src/linux/System.map 2)使用 nm 命令: $nm vmlinuz | grep sys_open 3)从 /proc/kallsyms 文件获得地址: $cat /proc/kallsyms | grep...原创 2021-11-01 15:43:20 · 611 阅读 · 0 评论 -
linux 内核常见知识
下一个问题(Enable ELF core dumps (ELF_CORE))询问的是内核是否可以生成内核转储文件。这会使内核变大4KB。所以我选择了"no"。注意:内核转储文件(内存或者系统的转储)是程序崩溃前已记录的状态。内核转储是用来调试问题的。这个转储文件的格式是ELF(Executable and Linkable Format )。下面可以启用PC扬声器(Enable PC-Speaker support (PCSPKR_PLATFORM))。大多数计算机用户拥有并使用扬声器,所以这个启原创 2021-10-30 14:07:17 · 397 阅读 · 0 评论 -
shellcode找块福地- 通过VDSO绕过PXN
给shellcode找块福地- 通过VDSO绕过PXN0x01 引语近日看雪论坛里有个兄弟在写漏洞利用的时候遇到了点问题。他发现rop实现提权的方式在不同设备版本适配的时候比较麻烦,需要做的工作较多。他想知道有没有更好更稳定的方式,绕过PXN让内核执行shellcode。最近一年,一种利用VDSO( Virtual Dynamic Shared Object,虚拟动态共享对象)机制的攻击方式,在脏牛等漏洞利用代码中得到应用。本文将介绍这种新型的绕过PXN的攻击方式。0x02 回顾PXN原创 2021-10-14 11:33:26 · 474 阅读 · 0 评论 -
linux 自带强大调试工具sysRQ(高级片)
在linux系统下,我们可能会遇到系统某个命令hang住的情况,通常情况下,我们会查看/proc/pid/wchan文件,看看进程处于什么状况,然后进一步查看系统日志或者使用strace跟踪命令执行时的系统调用等等方法来分析问题。我们知道命令hang,一般问题都出在内核里, 如果我们能根据自己的需要打印内核的信息,可能会事半功倍,很快定位到问题。幸运的是linux真的有提供这样的方式,就是通过SysRq,今天在这里我就介绍一下。1. SysRq的启用与关闭要想启用SysRq, 需要在配置内核时设置.原创 2021-02-19 10:43:14 · 1217 阅读 · 0 评论 -
大话kernel kmalloc、kzalloc、vmalloc区别(高级)
Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别kzalloc与kmalloc区别这个函数就是原来的两个函数的整合,即原来我们每次申请内存的时候都会这么做,先是用kmalloc()申请空间,然后用memset()来初始化,而现在省事了,一步到位,直接调用kzalloc(),效果等同于原来那两个函数,所有申请的元素都被初始化为0.其实对写驱动的来说,知道现在应该用kzalloc()代替原来的kmallo...原创 2021-02-18 16:29:33 · 280 阅读 · 0 评论 -
Keycode scancode 与input keycode对应关系
https://www.cnblogs.com/lifexy/p/7645527.htmlhttps://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html#ss10.61.首先我们通过上节的代码中修改,来打印下键盘驱动的数据到底是怎样的先来回忆下,我们之前写的鼠标驱动的id_table是这样:所以我们要修改id_table,使这个驱动为键盘的驱动,如下图所示:然后修改中断函数,通过printk()打印数据:我们先按下按键A为例.原创 2021-02-03 11:37:01 · 1436 阅读 · 0 评论 -
高级性能优化Android 开机时间慢问题debug
高级性能优化Android 开机时间慢问题debugStep 1启动电源以及系统启动当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行。Step2 : bootloader引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与芯片的。引导程序分两个阶段执行。第一个阶段,检测外部的RAM以及加载对第二阶段有用的程序;第二阶段,引导程序设置网络、内存等等。这些对于运行内核是必要..原创 2020-12-03 12:06:23 · 896 阅读 · 0 评论 -
Ubuntu 开始自动启动一个脚本加获取root权限执行
第一步:制作脚本(这部分已经完成)在脚本文件统计目录下创建_PWD_TEMP_:自动进入root需要创建该文件,我的当前路径为/home/kiki/下载/070120main_ui_release_linux/070120main_ui_release_linux/app,创建_PWD_TEMP_,内容是:#!/bin/bashecho "1313"(这个填写自己的root密码,蓝色的部分)创建脚本matLab_ui.sh#!/bin/sh#!/bin/shcd/etc/...原创 2020-11-24 11:58:31 · 2474 阅读 · 0 评论 -
大话 Select、Poll、Epoll
大话 Select、Poll、Epoll提到select、poll、epoll相信大家都耳熟能详了,三个都是IO多路复用的机制,可以监视多个描述符的读/写等事件,一旦某个描述符就绪(一般是读或者写事件发生了),就能够将发生的事件通知给关心的应用程序去处理该事件。本质上,select、poll、epoll本质上都是同步I/O,相信大家都读过Richard Stevens的经典书籍UNP(UNIX:registered: Network Programming),书中给出了5种IO模型:[1] b.原创 2020-09-01 14:43:08 · 218 阅读 · 1 评论 -
linux/android系统开发,高级adb 命令汇总
一、常ADB命令1. adb连接成功验证命令:adb shell命令:adb devices2.使用adb安装、卸载应用安装命令:adb install apk包名.apk举例:安装测试电池曲线的APK卸载命令:adb uninstall apk包名.apk3.使用adb复制文件从手机到电脑从手机复制到电脑命令:adb pull (文件手机路径) (电脑保存路径...原创 2020-04-22 11:41:18 · 930 阅读 · 0 评论 -
linux下tar.gz、tar、bz2、zip等常见解压缩命令总结
本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz 、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、. tar.Z、.zip、.rar这10种压缩文件进行操作Linux下最常用的打包程序就是tar了,使用tar程序...原创 2020-04-03 11:56:43 · 157 阅读 · 0 评论 -
linux 内核审核代码格式 /scripts/checkpatch.pl
Linux程序的命名习惯和Windows程序的命名习惯及著名的匈牙利命名法有很大的不同一、Documentation/CodingStyle文档Linux有独特的编码风格,在Linux内核源代码下存在一个文件Documentation/CodingStyle,进行了比较详细的描述二、scripts/checkpatch.pl脚本内核下的scripts/checkpatch.pl提供了1...原创 2019-11-22 10:42:09 · 2576 阅读 · 0 评论