CVE-2016-2502-drivers/usb/gadget/f_serial.c in the Qualcomm USB driver in Android.Buffer Overflow Vulnerability reported by #plzdonthackme, Soctt. struct ioctl_smd_write_arg_type { char *buf; unsigned int size; }; #define GSERIAL_BUF_LEN 256 char smd…
1.一个config_item 是通过显式用户空间mkdir操作创建的,通过rmdir销毁.属性(文件)在mkdir之后出现,可以通过read和write读取或修改属性文件.与sysfs一样,readdir查询链表上的items和/或attributes.2.symlink可用于将items组合在一起. 与sysfs不同,表示的生命周期完全由用户空间驱动,支持这items的内核模块必须响应这一点. 3.平台A上是在init.rc文件中挂载的 mount configfs none /config…
一 Gadget框架结构 kernel/drivers/usb/gadget,这个目录是android下usbgadget的主要目录. Gadget功能组织单元:主要文件android.c,usb gadget功能的统领文件,负责组织usb 复合设备的功能,与上层应用提供交互的接口,面向市场需求的产品规划部门. 复合设备逻辑处理单元(复合设备管理单元):主要文件:composite.c,这个文件类似于一个项目管理组,负责各个单元的接口对接,资源整理.针对拥有多个usb功能的复合设备,这部分负责将…
很幸运,在公司开发了gadget相关驱动,总结下来,大大小小开发了四个与gadget相关的驱动,字符驱动.g_multi.g_ether.g_zero,在这里把自己对gadget的开发中自己的感悟记录之. 想要了解gadget,必须了解其框架,知道composite.gadget.udc三者之间的联系,知道usb描述符的作用. 一个usb device有一个设备描述符. 有一个或者多个配置描述符 一个配置描述符有一个或者多个接口(在gadget端,接口正式命名是usb_func). 一个接口有0…
1. modprobe g_printer idVendor=0x0525 idProduct=0xa4a8 modprobe后面也可以加模块参数 2. prn_example从stdout获取数据然后通过USB发送出去,下面让他将文件中的内容发送出去: # cat data_file | prn_example -write_data 3.pdev = device_create(usb_gadget_class, NULL, devt, NULL, "g_printer%d", d…
USB 设备驱动: 一.USB 描述符:(存在于USB 的E2PROM里面) 1.  设备描述符:struct usb_device_descriptor 2.  配置描述符:struct usb_config_descriptor 3.  接口描述符:struct usb_interface_descriptor 4.  端点描述符:struct usb_endpoint_descriptor 通过命令lsusb 列出系统中所有的USB设备: 通过命令lsusb -v 列出系统中所有的USB设…
USB现在已经成为PC机必不可少的接口之一,几乎所有的设备都可以接在USB设备上,USB键盘.鼠标.打印机.摄像头,还有常用的U盘等等,从本篇文章开始,将集中篇幅介绍一下在DOS中使用USB设备的方法,具体会有几篇暂不好定,写到哪里算哪里吧,三.四篇总是少不了的.    本文介绍如何使用我以前文章中介绍过的知识在你的机器中找到USB设备,并判定设备类型.    一个USB系统一般由一个USB主机(HOST).一个或多个USB集线器(HUB,但不是局域网里的集线器)和一个或多个USB设备节点(NO…
USB有三类接口A类接口                     -----------最常见的扁平接口,四芯  VCC   GND   D+   D- B类接口                                                   -----------方形的梯形接口         相同是四芯 MINI AB类接口                                       -----------介绍例如以下. USB设备分两类         …
USB,Universal Serial Bus(通用串行总线),是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.是应用在PC领域的接口技术.USB接口支持设备的即插即用和热插拔功能.USB是在1994年底由英特尔.康柏.IBM.Microsoft等多家公司联合提出的. 1.USB接口定义: 2.Mini-USB 接口: 3.USB标准:                                       4.USB总线结构: 5.USB OTG 现在市面上有些设备(比如MP4)…
前文初步介绍了Linux用户态设备驱动,本文将介绍一个典型的案例.Again, 如对Linux用户态设备驱动程序开发感兴趣,请阅读本文,否则请飘过. Device Drivers in User Space: A Case for Network Device Driver | 用户态设备驱动:以网卡驱动为例 Hemant Agrawal and Ravi Malhotra, Member, IACSIT Abstract -- Traditionally device drivers spec…
USB 基本知识 USB的重要关键字: 1.端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点.输出端点.配置端点.批量传输端点) 2.帧分为好几份,每一份中是一个USB的传输动作. 3.上行.下行:设备到主机为上行,主机到设备为下行 下面以一问一答的形式开始学习吧. 问题一:USB的传输线结构是如何的呢? 答案一:一条USB的传输线分别由地线.电源线.D+.D-四条线构成,D+和D-是差分输入线,它使用的是3…
启动Android打印机设备,并用USB线连接电脑主机及Android打印机. Android打印机系统启动完成后,在Windows设备管理器中,可以看到Android Phone设备和USB打印支持. 同时,在打印管理——打印服务器——本地——打印机里可以看到Generic / Text Only打印机. 修改Generic / Text Only打印机的属性,字体选择中的代码页设置为简体中文(936). 在终端(如Xshell)中输入adb shell,并输入cat /dev/ffan_pr…
本文转载自:https://blog.csdn.net/luckywang1103/article/details/61917916 配置 配置好之后编译重新烧写到开发板,发现出现了/dev/ttyGS0这个设备节点. 将usb线插到PC后,在设备管理器里面出现了一个新的串口设备,如下  实验 1.开发板往pc发送数据 打开pc上的串口软件, 在开发板上执行: echo 1234 > /dev/ttyGS0,就会在pc上的串口软件上出现”1234”这几个字符. 2.pc往开发板发送数据 打开pc…
1.usb-OTG-ADP-HNP-SRP https://blog.csdn.net/xiongjiao0610/article/details/44150849…
1.usbmouse的定义:usb鼠标既包含usb设备(usb_device)的属性也包含input输入设备(input_dev)的属性 struct usb_mouse { ];///USB鼠标设备名称 ];///路径 struct usb_device *usbdev;///USB设备 struct input_dev *dev;///Input 设备 struct urb *irq; ///urb结构体 signed char *data;///数据传输缓冲区指针 dma_addr_t d…
1. Android手机上打开USB共享 2. Linux上修改USB0的ip地址并启用 sudo ifconfig usb0 192.168.42.127 up 3. Android手机上修改路由表和dns busybox route add default gw 192.168.42.1 setprop net.dns1 192.168.1.1 此时可以连接至电脑的ip(192.168.1.100),并使用tftp下载文件 4. Linux使usb0 允许共享网络(Enable Intern…
USB总线是一种典型的热插拔的总线标准,由于其优异的性能几乎成为了当下大小设备中的标配. USB的驱动可以分为3类:SoC的USB控制器的驱动,主机端USB设备的驱动,设备上的USB Gadget驱动,通常,对于USB这种标准化的设备,内核已经将主机控制器的驱动编写好了,设备上的Gadget驱动通常只运行固件程序而不是基于Linux, 所以驱动工程师的主要工作就是编写主机端的USB设备驱动. USB子系统框架 下图表示了Linux中USB子系统的框架结构,和i2c一样,USB子系统也可分为三层:…
简单来将,这个Exploits模块,就是针对不同的已知漏洞的利用程序. root@kali:~# msfconsole Unable to handle kernel NULL pointer dereference at virtual address 0xd34db33f EFLAGS: eax: ebx: f77c8c00 ecx: edx: f77f0001 esi: 803bf014 edi: 8023c755 ebp: 80237f84 esp: 80237f60 ds: es: s…
BlackArch-Tools 简介 安装在ArchLinux之上添加存储库从blackarch存储库安装工具替代安装方法BlackArch Linux Complete Tools List 简介 BlackArch Linux是针对渗透测试人员和安全研究人员的基于Arch Linux的渗透测试分发版.BlackArch Linux预装有上千种专用工具以用于渗透测试和计算机取证分析.BlackArch Linux与现有的Arch安装兼容.您可以单独或成组安装工具.https://blackar…
大家都知道Android是基于Linux内核的操作系统,也曾经和Linux基金会因为内核问题产生过分歧,本文将开始对Android的内核进行剖析,主要介绍Android和Linux之间的关系,后续还会讲到Android系统在Linux系统之上扩展的部分功能和驱动. 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.下面我们就来分析一下它们之间究竟有什么关系? 一.Android为什么会选择Linux…
Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 General setup常规设置 Local version - append to kernel release 在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到 Automaticall…
转自:http://blog.csdn.net/gaoyuanlinkconcept/article/details/8810468 介绍make menuconfig中的每个选项含义 Linux 2.6.19.x 内核编译配置选项简介作者:金步国 版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件.您可以自由链接.下载.传播此文档…
Linux与Androld的关系 虽然Android基于Linux内核,但是它与Linux之间还是有很大的差别,比如Android在Linux内核的基础上添加了自己所特有的驱动程序.下面我们就来分析一下它们之间究竟有什么千丝万缕关系?1 为什么会选择Linux 成熟的操作系统有很多,比如Unix系统.但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如: (1)强大的内存管理和进程管理方案 (2)基于权限的安全模式 (3)支持共享库 (4)经过认证的驱动模型…
目录 Linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633 Linux2.6版本内核编译配置选项(二):http://infohacker.blog.51cto.com/6751239/1203635 Device Drivers设备驱动程序 Generic Driver Options 驱动程序通用选项 Select only drivers that don't need compile-time ext…
/********************************************************************************* * arcotg_udc: exports duplicate symbol imx_usb_create_charger (owned by kernel) * 说明: * 内核驱动中导出的函数和模块中导出的函数重复了. * * 2017-10-14 深圳 南山平山村 曾剑锋 ***************************…
Integration 伯乐在线 极客头条 Hacker News Stack Overflow RFC Search Security Python Hacker - Freebuf PrimalSecurity Python Tutorials by PrimalSecurity Exploit Tutorials by PrimalSecurity E安全 爱尖刀 GPG GPG - tutorial by RuanYifeng InfoSec Resources DOS Attacks…
目录 . 应用场景 . Use Case Code Analysis . 和setjmp.longjmp有关的glibc and eglibc 2.5, 2.7, 2.13 - Buffer Overflow Vulnerability 1. 应用场景 非局部跳转通常被用于实现将程序控制流转移到错误处理模块中:或者是通过这种非正常的函数返回机制,返回到之前调用的函数中 . setjmp.longjmp的典型用途是异常处理机制的实现:利用longjmp恢复程序或线程的状态,甚至可以跳过栈中多层的函…
src: http://blog.thireus.com/tag/kernelcache Before going further it is important to enumerate some of the main security features available on iOS. The same goes for the architecture security features, particularly the boot process and partitioning s…
Exp6 信息收集与漏洞扫描 实践过程记录 一.各种搜索技巧的应用 1_搜索网址目录结构 dir_scanner use auxiliary/scanner/http/dir_scanner This module identifies the existence of interesting directories in a given directory path. 此模块标识给定目录路径中存在的有趣目录. dir_listing use auxiliary/scanner/http/dir…
重新编译内核(2.6.29)       2.6.29内核        Device Drivers ---> USB support --->   USB Gadget Support --->        其中 USB Peripheral Controller 选 S3C2410 USB Device Controller       然后再选一个内核自带的Gadget驱动程序来做演示,这里就选 Ethernet Gadget (with CDC Ethernet suppor…