驱动开发:内核注册表增删改查

注册表是Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息,注册表是一个巨大的树形结构,无论在应用层还是内核层操作注册表都有独立的API函数可以使用,而在内核中读写注册表则需要使用内核装用API函数,如下将依次介绍并封装一些案例,实现对注册表的创建,删除,更新,查询等操作。

驱动开发:内核中进程与句柄互转

在内核开发中,经常需要进行进程和句柄之间的互相转换。进程通常由一个唯一的进程标识符(PID)来标识,而句柄是指对内核对象的引用。在Windows内核中,`EProcess`结构表示一个进程,而HANDLE是一个句柄。为了实现进程与句柄之间的转换,我们需要使用一些内核函数。对于进程PID和句柄的互相转换,可以使用函数如`OpenProcess`和`GetProcessId`。OpenProcess函

驱动开发:摘除InlineHook内核钩子

在笔者上一篇文章`《驱动开发:内核层InlineHook挂钩函数》`中介绍了通过替换`函数`头部代码的方式实现`Hook`挂钩,对于ARK工具来说实现扫描与摘除`InlineHook`钩子也是最基本的功能,此类功能的实现一般可在应用层进行,而驱动层只需要保留一个`读写字节`的函数即可,将复杂的流程放在应用层实现是一个非常明智的选择,与`《驱动开发:内核实现进程反汇编》`中所使用的读写驱动基本一致,

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

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

驱动开发:内核物理内存寻址读写

在某些时候我们需要读写的进程可能存在虚拟内存保护机制,在该机制下用户的`CR3`以及`MDL`读写将直接失效,从而导致无法读取到正确的数据,本章我们将继续研究如何实现物理级别的寻址读写。首先,驱动中的物理页读写是指在驱动中直接读写物理内存页(而不是虚拟内存页)。这种方式的优点是它能够更快地访问内存,因为它避免了虚拟内存管理的开销,通过直接读写物理内存,驱动程序可以绕过虚拟内存的保护机制,获得对系统

驱动开发:内核读写内存多级偏移

让我们继续在`《内核读写内存浮点数》`的基础之上做一个简单的延申,如何实现多级偏移读写,其实很简单,读写函数无需改变,只是在读写之前提前做好计算工作,以此来得到一个内存偏移值,并通过调用内存写入原函数实现写出数据的目的。以读取偏移内存为例,如下代码同样来源于本人的`LyMemory`读写驱动项目,其中核心函数为`WIN10_ReadDeviationIntMemory()`该函数的主要作用是通过用

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

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

驱动开发:应用DeviceIoContro模板精讲

在笔者上一篇文章`《驱动开发:应用DeviceIoContro开发模板》`简单为大家介绍了如何使用`DeviceIoContro`模板快速创建一个驱动开发通信案例,但是该案例过于简单也无法独立加载运行,本章将继续延申这个知识点,通过封装一套标准通用模板来实现驱动通信中的常用传递方式,这其中包括了如何传递字符串,传递整数,传递数组,传递结构体等方法。可以说如果你能掌握本章模板精讲的内容基本上市面上的

8.1 TEB与PEB概述

在开始使用`TEB/PEB`获取进程或线程ID之前,我想有必要解释一下这两个名词,PEB指的是进程环境块`(Process Environment Block)`,用于存储进程状态信息和进程所需的各种数据。每个进程都有一个对应的`PEB`结构体。TEB指的是线程环境块`(Thread Environment Block)`,用于存储线程状态信息和线程所需的各种数据。每个线程同样都有一个对应的`TE

Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发?

摘要:为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。 本文分享自华为云社区《【华为云IoTEdge开发实战】Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发》,作者: 华

昇腾CANN:为你开启机器人开发的Buff 加成

摘要:昇腾AI提供了全栈技术和产品,构筑人工智能的算力基座,赋能上层应用 本文分享自华为云社区《昇腾CANN:为你开启机器人开发的Buff 加成》,作者:华为云社区精选 。 昇腾AI基础软硬件平台 人类在最近1万多年的发展中,经历了农耕时代、蒸汽机时代、电力时代、互联网时代,21世纪,进入了人工智能

云图说丨初识云应用引擎CAE

摘要:开发运营一个应用软件,面临种种挑战:软件栈厚重、开发上线慢、资源易浪费、运维投入高、突发流量应对困难。 华为云应用引擎CAE面对挑战,一扫而光!! 本文分享自华为云社区《【云图说】 | 第266期 初识云应用引擎CAE》,作者: 阅识风云。 CAE(Cloud Application Engi

Excel 2016 VBA 提取单元格的中文字符

启用开发工具 方式一:【右键Sheet1 】->【查看代码】 方式二:【开发者工具】->【Visual Basic】 Function chinese(rng As String) Dim regx As Object Dim strs, str, i Set regx = CreateObject

Win11 开启 telnet

Win11 开启 telnet , 'telnet’ 不是内部或外部命令,也不是可运行的程序或批处理文件。

Avalonia开发Markdown编辑器

# Avalonia开发Markdown编辑器 今天熟悉Avalonia UI,做一个Markdown的文本编辑器。 代码我上传了Github,地址: [https://github.com/raokun/AvaloniaMarkdown.git](https://github.com/raokun

京东云开发者| Redis数据结构(二)-List、Hash、Set及Sorted Set的结构实现

1 引言 之前介绍了Redis的数据存储及String类型的实现,接下来再来看下List、Hash、Set及Sorted Set的数据结构的实现。 2 List List类型通常被用作异步消息队列、文章列表查询等;存储有序可重复数据或做为简单的消息推送机制时,可以使用Redis的List类型。对于这

京东云开发者|探寻软件架构的本质,到底什么是架构?

不论是开发人员还是架构师,我们都一直在跟软件系统打交道,架构是在工作中出现最频繁的术语之一。那么,到底什么是架构?你可能有自己的答案,也有可能没有答案。对“架构”的理解需要我们不断在实践中思考、归纳、演绎,形成自己的认知。 1 到底什么是软件架构 ? 定义 ”架构是什么“ 是件非常困难的事情,不同的

京东云开发者|京东云RDS数据迁移常见场景攻略

云时代已经来临,云上很多场景下都需要数据的迁移、备份和流转,各大云厂商也大都提供了自己的迁移工具。本文主要介绍京东云数据库为解决用户数据迁移的常见场景所提供的解决方案。

京东云开发者|ElasticSearch降本增效常见的方法

Elasticsearch在db_ranking 的排名又(双叒叕)上升了一位,如图1-1所示;由此可见es在存储领域已经蔚然成风且占有非常重要的地位。随着Elasticsearch越来越受欢迎,企业花费在ES建设上的成本自然也不少。那如何减少ES的成本呢?今天我们就特地来聊聊ES降本增效的常见方法。

京东云开发者|关于“React 和 Vue 该用哪个”我真的栓Q

一、前言:我全都要 面对当今前端界两座大山一样的主流框架,React和Vue,相信很多小伙伴都或多或少都产生过这样疑问,而这样的问题也往往很让人头疼和犹豫不决: 业务场景中是不是团队用什么我就用什么? 如果选择了其中一个使用,那为什么不用另一个? 这两个框架各有什么优点和无法解决的问题? 最新版本的