小钢炮 驱动器 电流 摩托车

6.2 Windows驱动开发:内核枚举SSSDT表基址

在Windows内核中,SSSDT(System Service Shadow Descriptor Table)是SSDT(System Service Descriptor Table)的一种变种,其主要用途是提供Windows系统对系统服务调用的阴影拷贝。SSSDT表存储了系统调用的函数地址,... ......
基址 内核 Windows SSSDT 6.2

5.7 Windows驱动开发:取进程模块函数地址

在笔者上一篇文章`《内核取应用层模块基地址》`中简单为大家介绍了如何通过遍历`PLIST_ENTRY32`链表的方式获取到`32位`应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版`GetUserModuleBaseAddre... ......
函数 模块 进程 Windows 地址

【Lustre相关】应用部署-01-源码编译IB驱动及lustre软件包

一、编译安装 系统版本:CentOS Linux release 7.9.2009 (Core) 内核版本:3.10.0-1160.el7.x86_64 网卡型号:Mellanox Technologies MT2892 Family [ConnectX-6 Dx] 软件版本:lfs 2.12.9 ......
软件包 源码 Lustre lustre 软件

5.1 Windows驱动开发:判断驱动加载状态

在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态,这个功能看似没啥用实际上在某些特殊场景中还是需要的,如下代码实现了判断当前驱动是否加载成功,如果加载成功, 则输出该驱动的详细路径信息。该功能实现的核心函数是`NtQuerySystemInformation`这是一个微软未公开的函数,也没有... ......
状态 Windows 5.1

7.5 Windows驱动开发:监控Register注册表回调

在笔者前一篇文章`《内核枚举Registry注册表回调》`中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监控函数,通过这两个函数可以在不劫持内核API的前提下实现对注册表增加,删除,创建等事件的有效监控,注册表监视通常会通过... ......
注册表 Register Windows 7.5

3.2 Windows驱动开发:内核CR3切换读写内存

CR3是一种控制寄存器,它是CPU中的一个专用寄存器,用于存储当前进程的页目录表的物理地址。在x86体系结构中,虚拟地址的翻译过程需要借助页表来完成。页表是由页目录表和页表组成的,页目录表存储了页表的物理地址,而页表存储了实际的物理页框地址。因此,页目录表的物理地址是虚拟地址翻译的关键之一。在操作系... ......
内核 内存 Windows 3.2 CR3

关键字 开发-02 关键字驱动执行yaml用例

1. 封装request运行方法 我们将测试数据写到yaml文件中,通常会使用pytest框架parametrize参数化的方式读取yaml文件数据生成测试用例,于是我们可以根据这个思路来开发。 # utils/request_session.py import requests import re ......
关键字 关键 yaml 02

Linux驱动开发: FrameBuffe(LCD)驱动开发

一、FrameBuffer 帧缓冲设备的原理 1.1 概念 在linux系统中LCD这类设备称为帧缓冲设备,英文frameBuffer设备。 frameBuffer 是出现在2.2.xx 内核当中的一种驱动程序接口。 帧缓冲(framebuffer)是Linux 系统为显示设备提供的一个接口,它将显 ......
FrameBuffe Linux LCD

Linux图形驱动与图形调度分析

Linux图形驱动与图形调度分析 Linux图形驱动 Linux图形堆栈在过去几年中经历了许多演变。本节的目的是详细说明这段历史,并给出多年来所做更改背后的理由。今天,设计仍然深深植根于这段历史,本节将解释这段历史,以更好地推动Linux图形堆栈的当前设计。下面简述Linux图形驱动架构涉及的各个模 ......
图形 Linux

软件测试/人工智能|如何使用ChatGPT编写符合PO模式的数据驱动测试框架

简介 上一篇文章我们介绍了使用ChatGPT帮我们编写自动化测试脚本,但是上文编写的脚本并不符合我们的PO设计模式,作为现在主流的设计模式,更加方便我们去编写脚本,一旦页面发生变动,我们的代码改动也会变小,所以我们的目标不是使用ChatGPT编写自动化脚本,而是要使用ChatGPT来编写符合PO设计 ......

世微 多功能 LED降压型恒流芯片内置2.2A LED摩托车灯 全亮 半亮 爆闪 AP2403

产品描述 AP2403 是一款 PWM 工作模式,内置功率管,适用于 5-100V 输入的高精度降压 LED 恒流驱动芯片。输出功率可达 22W,电流 2.2A。AP2403 可实现三段功能切换,通过 MODE1/2/3 切换三种功能模式:全亮,半亮,爆闪。AP2403 工作频率固定在 150KHZ ......
车灯 LED 多功能 芯片 摩托

9.9 Windows驱动开发:内核远程线程实现DLL注入

在笔者上一篇文章`《内核RIP劫持实现DLL注入》`介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的,本章将继续探索全新的注入方式,通过`NtCreateThreadEx`这个内核函数实现注入DLL的目的,需要注意的是该函数在微软系统中未被导出使用时需要首先得到该函数的入口地址,`NtCr... ......
线程 内核 Windows 9.9 DLL

《实现领域驱动设计》笔记——上下文映射图

一个项目的上下文映射图可以用方式来表示。比较容易的一种是画一个简单的框图表示两个或多个限界上下文之间的映射关系。该框图表示了不同的限界上下文在解决方案空间中是如何通过集成相互关联的。另一种更详细的方式是通过限界上下文集成的源代码实现来表示。 上下文映射图为什么重要 上下文映射图主要帮助我们从解决方案 ......
上下文 上下 领域 笔记

20231121 rock5b 接入mpu6050模块 驱动成功!感谢https://github.com/LitchiCheng/mpu6050-linux

我的rock5b安装的其radxa官方OS,里面有一个rsetup程序的overlay功能可以管理设备树, 我想根据 https://github.com/LitchiCheng/mpu6050-linux 来尝试连接一个6050; 先 rsetup 里面的overlay管理 开启 i2c8-m4 ......
6050 LitchiCheng mpu 模块 20231121

世微 dc-dc降压恒流 LED汽车大灯 单灯 14V5A 68W车灯驱动方案 AP5191

产品描述 AP5191是一款PWM工作模式,高效率、外围简单、外置功率MOS管,适用于4.5-150V输入的高精度降压LED恒流驱动芯片。输出最大功率150W,最大电流6A。AP5191可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5191 工作频率可以通过RT 外部电阻 ......
大灯 车灯 方案 汽车 dc-dc

9.4 Windows驱动开发:内核PE结构VA与FOA转换

本章将继续探索内核中解析PE文件的相关内容,PE文件中FOA与VA,RVA之间的转换也是很重要的,所谓的FOA是文件中的地址,VA则是内存装入后的虚拟地址,RVA是内存基址与当前地址的相对偏移,本章还是需要用到`《内核解析PE结构导出表》`中所封装的`KernelMapFile()`映射函数,在映射... ......
内核 Windows 结构 9.4 FOA

9.3 Windows驱动开发:内核解析PE结构节表

在笔者上一篇文章`《内核解析PE结构导出表》`介绍了如何解析内存导出表结构,本章将继续延申实现解析PE结构的PE头,PE节表等数据,总体而言内核中解析PE结构与应用层没什么不同,在上一篇文章中`LyShark`封装实现了`KernelMapFile()`内存映射函数,在之后的章节中这个函数会被多次用... ......
内核 Windows 结构 9.3

9.2 Windows驱动开发:内核解析PE结构导出表

在笔者的上一篇文章`《内核特征码扫描PE代码段》`中`LyShark`带大家通过封装好的`LySharkToolsUtilKernelBase`函数实现了动态获取内核模块基址,并通过`ntimage.h`头文件中提供的系列函数解析了指定内核模块的`PE节表`参数,本章将继续延申这个话题,实现对PE文... ......
内核 Windows 结构 9.2

字节跳动AB实验经验分享:企业如何构建数据驱动的实验文化?

近日,CCF TF 举办了第 123 期分享活动,本期主题为“用户体验工程”。在活动中,来自火山引擎 AB 测试平台的专家结合字节跳动的 AB 实验经验,进行了《数据驱动的实验文化》为主题的现场分享。 ......
字节 经验 数据 文化 企业

电压、电流反馈

1,电压电流负反馈:针对放大器输出端而言,指负反馈信号从放大器输出端的取出方式 1),电压负反馈电路特征: 负反馈电路是并联在放大器输出端与地之间的,只要放大器输出端输出信号电压,就有负反馈的存在,所以负反馈信号直接取自于输出信号电压。 电压负反馈可以稳定放大器输出电压。 由于电压负反馈元件是并联在 ......
电流 电压

普冉PY32系列(十二) 基于PY32F002A的6+1通道遥控小车III - 驱动篇

这篇继续介绍遥控小车的驱动端, 即电机驱动板, 分别介绍整体流程, 基于74HC595的IO扩展和麦克纳姆轮运动控制计算等. ......
小车 通道 PY 32 002A

《实现领域驱动设计》笔记——领域、子域和限界上下文

总览 从广义上讲,领域(Domain)即是一个组织所做的事情以及其中所包含的一切。商业机构通常会确定一个市场,然后在这个市场中销售产品和服务。每个组织都有它自己的业务范围和做事方式。这个业务范围以及在其中所进行的活动便是领域。当你为某个组织开发软件时,你面对的便是这个组织的领域。这个领域对于你来说应 ......
限界 领域 上下文 上下 笔记

5.4 Windows驱动开发:内核通过PEB取进程参数

PEB结构`(Process Envirorment Block Structure)`其中文名是进程环境块信息,进程环境块内部包含了进程运行的详细参数信息,每一个进程在运行后都会存在一个特有的PEB结构,通过附加进程并遍历这段结构即可得到非常多的有用信息。在应用层下,如果想要得到PEB的基地址只需... ......
内核 进程 参数 Windows 5.4

5.2 Windows驱动开发:内核取KERNEL模块基址

模块是程序加载时被动态装载的,模块在装载后其存在于内存中同样存在一个内存基址,当我们需要操作这个模块时,通常第一步就是要得到该模块的内存基址,模块分为用户模块和内核模块,这里的用户模块指的是应用层进程运行后加载的模块,内核模块指的是内核中特定模块地址,本篇文章将实现一个获取驱动`ntoskrnl.e... ......
基址 内核 模块 Windows KERNEL

5.3 Windows驱动开发:内核取应用层模块基址

在上一篇文章`《内核取ntoskrnl模块基地址》`中我们通过调用内核API函数获取到了内核进程`ntoskrnl.exe`的基址,当在某些场景中,我们不仅需要得到内核的基地址,也需要得到特定进程内某个模块的基地址,显然上篇文章中的方法是做不到的,本篇文章将实现内核层读取32位应用层中特定进程模块基... ......
基址 应用层 内核 模块 Windows

8.3 Windows驱动开发:内核遍历文件或目录

在笔者前一篇文章`《内核文件读写系列函数》`简单的介绍了内核中如何对文件进行基本的读写操作,本章我们将实现内核下遍历文件或目录这一功能,该功能的实现需要依赖于`ZwQueryDirectoryFile`这个内核API函数来实现,该函数可返回给定文件句柄指定的目录中文件的各种信息,此类信息会保存在`P... ......
内核 Windows 文件 目录 8.3

7.1 Windows驱动开发:内核监控进程与线程回调

在前面的文章中`LyShark`一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以`监控进程线程`创建为例,在`Win10`系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回调机... ......
线程 内核 进程 Windows 7.1

8.2 Windows驱动开发:内核解锁与强删文件

在某些时候我们的系统中会出现一些无法被正常删除的文件,如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉,而所谓的解锁其实就是释放掉文件描述符(句柄表)占用,文件解锁的核心原理是通过调用`ObSetHandleAttributes`函数将特定句柄设置为可关闭状态,然后在调用`ZwClose`将其... ......
内核 Windows 文件 8.2

领域驱动设计之银行转账:Wow框架实战

银行账户转账案例 银行账户转账案例是一个经典的领域驱动设计(DDD)应用场景。接下来我们通过一个简单的银行账户转账案例,来了解如何使用 Wow 进行领域驱动设计以及服务开发。 银行转账流程 准备转账(Prepare): 用户发起转账请求,触发 Prepare 步骤。这个步骤会向源账户发送准备转账的请 ......
实战 框架 领域 银行 Wow

Linux驱动开发笔记(四):设备驱动介绍、熟悉杂项设备驱动和ubuntu开发杂项设备Demo

前言 驱动的开发需要先熟悉基本概念类型,本篇讲解linux杂项设备基础,还是基于虚拟机ubuntu去制作驱动,只需要虚拟机就可以尝试编写注册杂项设备的基本流程。 linux三大设备驱动 字符设备:IO的传输过程是以字符为单位的,没有缓冲,比如I2C(SDA、SCL),SPI(MISO、MOSI、SC ......
设备驱动 杂项 设备 笔记 ubuntu