• 2024-11-20usb
     /sys/kernel/config/usb_gadget/camera目录介绍/sys/kernel/config/usb_gadget:这是USBgadget配置的根目录(USBgadget是指那些能够模拟成USB设备的嵌入式系统)camera:这是创建的一个特定的USBgadget实例的名字,代表了一个虚拟的USB设备,你可以通过配置它来模拟一个真实的US
  • 2024-09-17USB gadget驱动框架(六)
    本节主要介绍udc驱动枚举过程,需结合udc驱动、composite.c、function等一同分析整个过程。udc驱动中断处理函数当host检测到DP上拉,则认为有新的device插入,此时host将发起进入枚举流程,整个枚举流程大部分是在中断函数中处理,协议对时间有相关的要求,因此整个枚举流程是不能加入过多
  • 2024-09-17USB gadget驱动框架(五)
    本节主要分析虚拟串口的tty设备的注册、创建/dev/ttyGSx设备节点、tty相关接口的实现。tty的申请与注册源码:drivers/usb/gadget/function/u_serial.cstaticconststructtty_operationsgs_tty_ops={ .open= gs_open, .close= gs_close, .write= gs_write, .put_
  • 2024-09-05gadget驱动框架(二)
    usb_composite_driver的创建于注册源码:drivers/usb/legacy/serial.c//创建usb_composite_driverstaticstructusb_composite_drivergserial_driver={.name="g_serial",.dev=&device_desc,.strings=dev_strings,.max_s
  • 2024-09-04gadget驱动框架(一)
    之前在linux移植udc驱动的时候,没有深入的理解整个gadget驱动框架,现在重新再屡屡gadget驱动,以便后期再次学习。本系列的文章以虚拟串口进行分析,相关源码均是基于linux4.19.123。gadget驱动框架gadget源码主要在:drivers/usb/gadget,以虚拟串口为例,对源文件做简单说明:drivers/usb/g
  • 2024-09-04USB gadget驱动框架(三)
    gadget驱动框架(三)usb_udc与usb_gadget_driver的绑定usb_udc与usb_gadget_driver,在注册的时候分别被添加到udc_list和gadget_driver_pending_list中,无论这两者先后顺序如何,都将会动态的去识别及匹配到具体设备中,绑定过程如下:源码:drivers/usb/gadget/udc/core.c/*-------------
  • 2024-09-03USB gadget functionfs
    FunctionFS(FunctionFilesystem)是LinuxUSBGadget框架的一部分,专门用于从用户空间实现和控制自定义的USB功能。它提供了一种文件系统接口,使用户能够在用户空间中直接定义USB设备的接口、端点和描述符,并管理USB数据的传输。FunctionFS常用于需要用户空间控制的复杂U
  • 2024-09-03USB gadget configfs
    概述USBLinuxGadget是一种具有UDC(USB设备控制器)的设备,可以连接到USB主机,以扩展其附加功能,如串口或大容量存储能力。一个gadget被它的主机视为一组配置,每个配置都包含一些接口,从gadget的角度来看,这些接口被称为功能,每个功能代表一个串行连接或一个SCSI磁盘。Linux提供了许
  • 2024-09-03Android设备之间UVC Gadget bulk模式无法正常打开问题
    平台:RK3588Android版本:12内核版本:Linux5.10.66问题:通过usbgadget枚举uvc设备后,使用bulk传输,连接windowsPC可用正常打开预览,连接到另外AndroidHost设备无法正常打开。如果使用isochronous方式传输则都正常。分析:连接到PC(windows)上可以正常出图,但是连接到另外一个RK3588设
  • 2024-08-30Android Qcom USB Driver学习(十四)
    UDC-GadgetUDC:(USBDeviceController)用于管理和控制USB设备与主机之间的通信。Gadget:Android在此层实现了adb,mtp(MediaTransferProtocol媒体传输协议),mass_storage等。早期的USB只支持单一的gadget设备,使用场景较为简单,随后加入了compositeframework,用来支持多个function
  • 2024-08-21Android的USB网络共享功能
    一、什么是USB网络共享?  USB共享网络是一种基于USB接口的数据传输和资源共享解决方案,例如Android设备作为一个usb网卡连接到其他主机,将Android设备的网络共享给主机使用。在Android系统设置中的“开发者选项”中,可以找到usb的默认配置选择USB共享网络的功能,选择还包括
  • 2024-08-13ROP学习
    基本知识ReturnOrientedProgramming面向返回的编程。通过找各种小片段gadget,去实现类似(最简单的)直接在栈上运行恶意代码的方法。程序存在溢出合适的gadgetROPgadget,ropper.ropperropper-f程序--search"pop|ret"rop种类ret2shellcode最简单的,当NX关着的时候(也
  • 2024-08-08Linux-USB驱动笔记--设备控制器(UDC)驱动
    1、前言在Linux-USB驱动笔记(四)–USB整体框架中有説到设备侧的设备控制器(UDC),下面我们来具体看一下。2、设备控制器(UDC)USB设备控制器(UDC)驱动指的是作为其他USB主机控制器的USB硬件设备上的底层控制器驱动。该硬件和驱动负责将一个USB设备依附于一个USB主机控制器上。UDC驱
  • 2024-06-16usb gadget配置记录
    linux配置DeviceDrivers>Networkdevicesupport>USBNetworkAdapters[*]Multi-purposeUSBNetworkingFramework[*]SimpleUSBNetworkLinks(CDCEthernetsubset)DeviceDrivers>USBsupport>USBGadgetSupport[*]Ser
  • 2024-06-04pwn学习-ret2csu
    再上一次学习栈溢出ret2syscall方法时,我们会发现有些gadget不存在,我们只能借用read遗留下来的ebx寄存机调用,这时就可以使用万能gadget,这个万能的gadget存在__libc_csu_init中,由于每个动态链接的程序就有有libc,并且__libc_csu_init用于初始化,所以说几乎每个程序都含有__libc_csu_i
  • 2024-06-02pwn学习-ret2libc
    昨天学习了re2syscall,该方法主要是系统中没有system()函数,也没有/bin/sh字符串,一般该二进制程序使用staticlink静态链接,可以找到很多的gadget,我们可以利用这些gadget进行系统调用但是在动态链接时,gadget就变少了,也是同样的没有system()函数,这时我们需要再函数动态绑定的libc中找
  • 2024-05-31pwn学习-ret2plt
    在之前进行ret2shellcode的学习时,需要NX保护机制是关闭的,但是现在一般情况下,保护机制默认都是开启的,那么该怎么办呢?下面我们将学习ret2plt技术,够着ROPChain来执行我们想要的代码ret2plt这种技术的目的是从PLT中泄漏函数的地址,例如二进制程序中有一个system或其他危险函数的
  • 2024-04-23pwn知识——劫持__malloc_hook(在加入tcache以后)
    导论动调是最好的导师!malloc_hook函数解析malloc_hook是malloc的钩子函数,在执行malloc时,会先检测__malloc_hook的值,如果malloc_hook的值存在,则执行该地址(值里边表现为十六进制,可以成为地址),也就是说,如果我们成功劫持malloc_hook以后并修改它的值为one_gadget,我们就能getshell并
  • 2024-02-27RK3588 usb otg口实现UVC gadget,作为usb camara向windows 传输图像
    1、打开内核相关配置CONFIG_VIDEO_V4L2_SUBDEV_API=yCONFIG_MEDIA_USB_SUPPORT=yCONFIG_MEDIA_CONTROLLER=yCONFIG_USB_VIDEO_CLASS=yCONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_V4L_PLATFORM_DRIVERS=yCONFIG_MEDIA_CAMERA_SUPPORT=y
  • 2024-02-18PWN学习之格式化字符串及CTF常见利用手法
    格式化字符串的基本漏洞点格式化字符串漏洞是一种常见的安全漏洞类型。它利用了程序中对格式化字符串的处理不当,导致可以读取和修改内存中的任意数据。格式化字符串漏洞通常发生在使用C或类似语言编写的程序中,其中 printf、sprintf、fprintf 等函数用于将数据格式化为字符串
  • 2023-12-28使用usb进行主从通信
    借鉴链接:https://www.cnblogs.com/pypyn/p/16945784.html gadget主机:usb主机控制器--主机控制器驱动(HCI,EHCI,)--usbcore--usb设备驱动--应用程序从机:usb设备控制器--设备控制器驱动(UDC)--gadgetAPI(驱动?)--待定使用usb转虚拟串口进行通信:首先理解了
  • 2023-11-14嵌入式Linux adbd实现概要梳理(基于STM32MP157D+Buildroot)
    关键词:USBGadget、dwc2、configfs、functionfs、adbd等等。基于STM32MP157D简单记录ADB实现的过程,涉及到USB、Gadget、configfs、functionfs、adbd、ADB协议等等。基于Buildroot2020.02.6编译adbd运行于设备,和PCWindows交互的简要框图:1Linux下USBGadget1.1Linux内核Gad
  • 2023-10-20小明哥学linux驱动之USB-OTG(基于gadget框架)【转】
    转自:https://blog.csdn.net/silence3039/article/details/100187666一、简介OTG是On-The-Go的缩写。其设计的初衷是为了两个“外设”在没有PC(Host)的情况下,也可以通过USB进行数据传输。可以理解为,拥有OTG功能的USB设备(OTG设备)既可以做host,也可以做peripheral。二、OTG基本结构2
  • 2023-08-05浅谈非栈上格式化字符串
    浅谈非栈上格式化字符串这里先浅分析修改返回地址的两种打法,分别是"诸葛连弩"和”四马分肥“修改返回地址本文例题以陕西省赛easy_printf为主简单看一看程序需要先过一个判断然后进入vuln进入后有一个13次的循环可以让我们操作第一步肯定要先leak出栈地址程序
  • 2023-07-13jboss JMXInvokerServlet反序列化漏洞
    jmxinvokerservlet反序列化漏洞描述:JBOSS在/invoker/jmxinvokerservlet请求中读取了用户传入的对象,可利用apachecommonscollections中的gadget执行任意代码CommonCollectionGadget主要是由ConstantTransformer,InvokerTransformer,ChainedTransformer构成。gadget主要通过Transfor