Microsoft Patching Internals(HOTPATCH)

QML TableView表格自定义指南:从Model到Delegate的完整实现 在Qt Quick开发中,表格是数据展示的常见需求,而TableView以其独立的行列坐标体系、懒加载与委托复用机制,成为实现复杂表格的首选方案。理解Model与Delegate的分工,是自定义表格的基础:Model负责提供数据与行列结构,Delegate则决定每个单元格的视觉表现与交互逻辑。通过合理设计columnWidthProvider与rowHeightProvider,可以精确控制列宽与行高,配合HorizontalHeaderView或手动表头实现专业的表头效果。固定首列、拖拽列宽、自定义滚动条 阅读详情
Author: EliCZ  ...

Caveat Emptor

This article was not written to read like a novel. It is a to-the-point technical dump describing the inner workings of Microsoft's cold and hot patching process. The majority of the symbolic names listed below have been derived from NTDLL and NTOSKRNL. Please post any questions you may have directly (for the benefit of others) to this article and the author will gladly respond. The article may be updated in the future to include some of these answers inline.

A companion download including examples and appropriate header files is available for download: MSPatching.zip.

Cold Patching

Replacing functions by replacing their containers - files and sections.

The image to patch is "atomically replaced" with an image that contains all code and data contained within the original plus the fixed functions and redirections to them through embedded hooks. The functions to update are statically hooked and the hooks transfer the execution to the fixed functions in the '.text_CP' or '.text_CO' section of a coldpatch module. This section is followed by the '.DBG_POR' section in situations where the original '.data' section has to be modified. In other cases, the '.text_CP' / '.text_CO' sections are followed by '.data_CP' or '.data_CO'. Overall, there can theoretically be as many _CP / _CO sections as the original image has (.text, rdata, .data, etc..). The '.DBG_POR' section contains module imports, exports and a debug information. The debug information for the coldpatch module usually consists of two entries. The first entry is of CODEVIEW type, the second is RESERVED10. RESERVED10 data contains the coldpatch debug information that is comprised of the HOTPATCH_DEBUG_HEADER structure followed by HOTPATCH_DEBUG_DATA structure. HOTPATCH_DEBUG_HEADER.Type has value DEBUG_SIGNATURE_COLDPATCH. The contents of HOTPATCH_DEBUG_DATA are used in a process called 'target module validation' when the validation of the original module fails and hotpatch checks if there is a coldpatch present.

The atomic file replacement is realized by filling the SYSTEM_HOTPATCH_CODE_INFORMATION.RenameInfo structure and calling SYSTEM_HOTPATCH_CODE_INFORMATION.Flags.HOTP_RENAME_FILES sub-function of ExApplyCodePatch (SystemHotpatchInformation class of Nt/ZwSetSystemInformation) function. HOTP_RENAME_FILES sub-function is not implemented in the newer OS versions/builds.

Replacing the image on a volume doesn't mean that all the newly created processes will load/contain the updated image. For the system purposes, security or for increasing module loading speed, a sections can be emplyed in the process of the image loading. The section for a system module (ntdll.dll, ...) is updated by HOTP_UPDATE_SYSDLL sub-function (no structure required). The section for the loader (from /KnownDlls object directory) is updated by calling HOTP_UPDATE_KNOWNDLL with AtomicSwap sub-structure filled. The old object's name is swapped with newly created temporary object (update.exe names the section 'ColdPatchInstallationInProgres') in the object directory.

Hot Patching

Replacing functions by replacing their code in the memory. Available since Server 2003 SP0, XP SP2 x86, ia64, x64.

Functions were successfully fixed on the volume. Now they should be changed in the memory - in the kernel memory for kernel modules or in the memory of user processes that contain the module to update. The functions to patch are dynamically hooked - one sufficiently long CPU instruction or data (pointer, RVA) of the function to fix is replaced with a branch instruction (pointer, RVA) that redirects an execution flow to a fixed function in the hotpatch module. After applying the hooks, the patched module in memory looks like the coldpatch module, just the targets of the branch instructions do not lie within '.text_CP' section but in the code section(s) of the hotpatch module.

The hotpatch module may contain the debug information similar to the coldpatch's one, just RESERVED10 data consists of HOTPATCH_DEBUG_HEADER only and HOTPATCH_DEBUG_HEADER.Type has value DEBUG_SIGNATURE_HOTPATCH.

The hotpatch module must contain a section named '.hotp1 ' that is at least 80 bytes (sizeof(HOTPATCH_HEADER)) long and that must begin with a HOTPATCH_HEADER structure. The structure is used for validating the target module, fixing relocations and creating intermediate RTL_PATCH_HEADER structure.

When applying the hotpatch to a user module, an updating agent enumerates the processes and creates remote threads into them that execute ntdll.LdrHotPatchRoutine. Newer OS versions/builds allow the remote thread creation from the kernel mode when HOTP_INJECT_THREAD sub-function is called and InjectInfo sub-structure is correctly filled.

LdrHotPatchRoutine checks if HOTP_USE_MODULE flag is set and the target module, whose base name is specified in UserModeInfo.TargetNameOffset, is present in the process. When applying the hotpatch to a kernel module, (ntoskrnl.MmHotPatchRoutine) both HOTP_USE_MODULE and HOTP_KERNEL_MODULE flags must be set and KernelInfo sub-structure must be filled.

The Source (hotpatch) module is loaded and checked for the presence of '.hotp1 ' section, HOTPATCH_HEADER.Signature and Version. If RTL_PATCH_HEADER for the source module already exists, hooks were successfully applied and HOTP_PATCH_APPLY flag is clear, the hooks are removed. Otherwise RTL_PATCH_HEADER is created, the target module whose name is in HOTPATCH_HEADER.TargetNameRva is checked for presence and validated according to ModuleIdMethod using TargetModuleIdValue. If there's a validation mismatch, system checks whether the target module is the coldpatch according to the coldpatch debug info. If it is the coldpatch, PATCHFLAG_COLDPATCH_VALID flag is set in RTL_PATCH_HEADER.PatchFlags.

The functions to fix may access the target image, they can call its functions and use its variables (it means pointers and call and jump targets do not have to be in the hotpatch module because they point directly to the target module). Such codes must be fixed using special relocation fixups from HOTPATCH_HEADER.FixupRgnRva with respect to HOTPATCH_HEADER.OrigHotpBaseAddress and HOTPATCH_HEADER.OrigTargetBaseAddress. Then the functions function as they would be called from the original module. Number of the HOTPATCH_FIXUP_ENTRY structures in the HOTPATCH_FIXUP_REGION must be even number. If the hotpatch contains standard base relocations, they usually apply only to a pointers to hotpatch's import table (APIs).

Various places of the target module can be validated according to HOTPATCH_VALIDATION structures in HOTPATCH_HEADER.ValidationArrayRva. Validations with option HOTP_Valid_Hook_Target are skipped (those are the places to patch).

HOTPATCH_HOOK_DESCRIPTOR structures are prepared according to HOTPATCH_HOOK structures in HOTPATCH_HEADER.HookArrayRva. HOTPATCH_HOOK.HookOptions contain in their first 5 bits the length of the instruction to replace and it must be at least as long as the length of the branch instruction - the rest is, for some hook types, padded with bytes of value 0xCC.

Again there's possibility to validate the bytes that will be replaced (HOTP_Valid_Hook_Target has now no effect). If there's a mismatch and the patch place already contains the adequate branch instruction, a list of RTL_PATCH_HEADER structures in TargetModule.LDR_DATA_TABLE_ENTRY.PatchInformation is traversed and bytes at HOTPATCH_HOOK_DESCRIPTOR.CodeOffset are compared with the prepared branch instruction. If there's mismatch and the target module is the coldpatch, the validation succeeds for some hook types, for the other ones is checked whether the branch instruction points into the coldpatch.

Upon succesfull validation and hook preparation are the remaining members of RTL_PATCH_HEADER filled in, the sections of the target module are made writable and the hooks are written by calling ExApplyCodePatch with RTL_PATCH_HEADER.CodeInfo and HOTP_PATCH flag set. If the patch application succeeds, RTL_PATCH_HEADER is linked to TargetModule.LDR_DATA_TABLE_ENTRY.PatchInformation list.
  • There's no security issue: Debug and LoadDriver privileges must be enabled for all Cold/HotPatch operations except for user mode hotpatching or when applying CodeInfo directly. CodeInfo cannot be directly applied to kernel when calling ExApplyCodePatch from user mode.
  • CodeInfo is applied "os-atomically" - the preemption is unlikely.
  • Function to fix doesn't have to be compiled (/linked) with /hotpatch (/functionpadmin) option.
  • There's no public tool (special version of C compiler, linker?) for creating the cold/hotpatches. It is possible to write a tool that will add/write to '.hotp1 ' section of image created by normal compiling/linking but there are 2 problems:
    • How to write the new function with instructions pointing to target module and with this conjuncted
    • Fixup handling. Anyway, one doesn't have to use the target module functions/data so there's no need for the hotpatch fixups.
Hook Types

HOTP_Hook_None

HOTP_Hook_VA32
32 bit value/pointer, 4 bytes

HOTP_Hook_X86_JMP
x86/64 long relative jump, E9 Rel32, <-2GB..2GB-1>,
Rel32 constructed according to Hook/HotpRva,
>= 5 bytes, padded with 0xCC

HOTP_Hook_PCREL32
not yet implemented,
for fixing Rel32 of x86/64 call or jump, 4 bytes

HOTP_Hook_X86_JMP2B
x86/64 short relative jump, EB Rel8 <-128B..127B>,
Rel8 is in HotpRva,
>= 2 bytes, padded with 0xCC

HOTP_Hook_VA64
64 bit value/pointer, 8 bytes

HOTP_Hook_IA64_BRL
ia64 branch, at HookRva must be a supported template type
>= 16 bytes

HOTP_Hook_IA64_BR
not yet implemented

HOTP_Hook_AMD64_IND
x86/64 absolute indirect jump, FF 25 [Offset32 / Rip+Rel32]
HotpRva (+Rip) must point to a variable that contains a pointer to fixed function,
>= 6 bytes, padded with 0xCC

HOTP_Hook_AMD64_CNT
16bit value/pointer, 2 bytes Hook combinations are allowed - HOTP_Hook_X86_JMP2B + HOTP_Hook_X86_JMP is typical. When the distance hotpatch-target exceeds 2GB, HOTP_Hook_AMD64_IND must be employed on x86/64. One then needs a place to store the pointer specified in [Offset32 / Rip+Rel32]. For x86 it can be inside the hotpach module but for x64 not. HOTP_Hook_AMD64_IND + HOTP_Hook_VA64 is the solution. /hotpatch option for x64 is not yet implemented but I would suggest:

  Buffer: //for HOTP_Hook_VA64
    8x nop
  FnStart:
    48 8D A4 24 00 00 00 00  lea rsp, [rsp + 0]  - 2 bytes more than required
   or
    0F 8x 00 00 00 00   j?? ___FCKpd___06 - as long as required but slower

  In Colpatch/After Hotpatching it could look like:
  Buffer:
    Ptr64FnContinue
  FnStart:
    FF 25 F2 FF FF FF  jmp qword ptr [Buffer] //[Rip-14]
    CC
    CC

Of course there's possibility to make a triple patch: JMP2B -> IND -> VA64.

x86 Patch Examples

Function created with /hotpatch, "semi-hotpachable" function, "non-hotpatchable" function. You may notice there's replaced more than one CPU instruction (5x nop with long relative jmp) but the nops are not involved in the function - they serve as buffer.

Original FunctionColdPatch/After HotPatchingIn Cold/HotPatch
5x 90         5x   nop
FnStart:      
8B FF         mov  edi, edi
55            push ebp
8B EC         mov  ebp, esp
56            push esi
57            push edi
8B 35 g_Data  mov  esi, g_Data


5x 90         5x   nop
FnStart:      
55            push ebp
8B EC         mov  ebp, esp
56            push esi
57            push edi
8B 35 g_Data  mov  esi, g_Data


FnStart:      
55            push ebp
8B EC         mov  ebp, esp
56            push esi
57            push edi
8B 35 g_Data  mov  esi, g_Data
E9 Rel32      jmp  FnContinue
FnStart:      
EB F9         jmp  $-5
55            push ebp
8B EC         mov  ebp, esp
56            push esi
57            push edi
8B 35 g_Data  mov  esi, g_Data


E9 Rel32      jmp  FnContinue
FnStart:      
55            push ebp
EB F8         jmp  $-6
56            push esi
57            push edi
8B 35 g_Data  mov  esi, g_Data


FnStart:      
55            push ebp
8B EC         mov  ebp, esp
56            push esi
57            push edi
E9 Rel32      jmp  FnContinue
CC            int  3
FnStart:      
FnContinue:   
55            push ebp
8B EC         mov  ebp, esp
56            push esi
57            push edi
8B 35 g_Data  mov  esi, g_Data
              ; fixup required


FnStart:      
55            push ebp
FnContinue:   
8B EC         mov  ebp, esp
56            push esi
57            push edi
8B 35 g_Data  mov  esi, g_Data
              ; fixup required

FnStart:      
55            push ebp
8B EC         mov  ebp, esp
56            push esi
57            push edi
FnContinue:   
8B 35 g_Data  mov  esi, g_Data
              ; fixup required


References

- Inside Update.exe - http://www.microsoft.com/technet/prodtechnol/windowsserver2003/deployment/winupdte.mspx
- KB packages for Server2003 x86 that contain the cold/hotpatches: 819696, 823182, 888113, 893086, 899588, 901190
P.A.T.C.H. - Ultimate Patching System [FULL] This version contains full core source codes! This is the only difference between this and the normal package! P.A.T.C.H. is a professional solution for applications/games patching and updating. It contains all features you need: installer, patcher, launcher, repairer, patches creator, FTP uploader, etc. An all-in-one, smart and clean solution! It can generate very small patches thanks to its included file binary diffing algorithm. What does it mean? It means that if you change only 5 bytes in your game, P.A.T.C.H. will create a patch that will change only those 5 bytes on users' builds, instead of downloading the entire edited file. Your users will be able to maintain updated their application copies with no pain or headaches, by saving bandwidth and time. Your users will love you! In addition, you will be able to create small-sized patches (and upload them) quickly with included tools! It includes Unity integrated tools and standalone version (if someone prefers to use it). You can export Unity integrated P.A.T.C.H. for each supported platform, thanks to Unity. Standalone P.A.T.C.H. can be compiled for each platform you need with Xamarin/Mono. You can check out this feature in P.A.T.C.H. documentation. P.A.T.C.H. supports each type of application: Unity based or standalone. Main features: - Binary diffing algorithm - Very small patches - Bandwidth saving - Checking for patches hash - Strong patches ZIP compression - A lot of raised event to hook to monitor what P.A.T.C.H. is doing - Encrypted configs - Customizable settings - Very flexible - No tricky configurations, no headaches! - Simple server side - Comes with launcher source code - If download fails, it will take care to download again failed patch for customizable attempts amount - Launching argument to avoid obsolete clients - Patch rollback feature: if patch process fails all changes will be discarded to avoid a build corruption - Hash validation for patched files - Linear and non-linear patches application - Files download over HTTP, HTTPS, FTP and file system - One-click-deploy - FTP Uploader - Installer and Repairer feature - Shortcuts creation - In-game embedded patcher - Self-update feature - WPF and WinForms examples too - Command Line tool 立即下载

相关推荐

数字IC物理验证实战 | 从Calibre LVS报告到Innovus定位的Debug全链路解析

本文详细解析了数字IC物理验证中Calibre LVS报告的Debug全流程,从INCORRECT NETS错误的初探到Innovus定位技巧,提供了实战案例和高效工具的使用方法。重点介绍了Calibre高亮功能、Innovus验证命令以及前后端工具联动的关键策略,帮助工程师快速定位和解决LVS问题,提升物理验证效率。

weixin_30919429的博客 127

hotpatch逆向代码~HotPatch.c

#include #include #include #define MEM_HOT_PATCH HotPPVOID _MmSystemLoadLock ;#define HotPatchSectionName .hotp1LIST_ENTRY _MiHotPatchList ;ERESOURCE _PsLoadedModuleResource ;LIST_ENTRY _PsLoadedM

2891

鸿蒙子系统解读-分布式软总线子系统初步研究(下)

鸿蒙子系统解读-分布式软总线子系统初步研究(下) 本文作者:江苏润和软件股份有限公司 郎建中 3.2. 数据传输 上一节我们看了PublishService()函数的代码实现过程。被发现端发布服务后,软总线回调发布成功的函数中,被发现端需要使用CreateSessionServer()来创建会话的服务器等待发现端的连接创建会话。下面我们就来分析CreateSessionServer()函数的实现过程。 数据传输部分的代码位于foundation/communication/services/softbus

weixin_47070198的博客 3091

Microsoft Patching Internals

Author: EliCZ   . Caveat EmptorThis article was not written to read like a novel. It is a to-the-point technical dump d

1373

使用 FastAPI 和 LangGraph 构建生产级智能体 AI 系统

这是一本关于使用 FastAPI 和 LangGraph 构建生产级智能体 AI 系统的详细书籍,全文约 10 万字。《Production-Grade Agentic AI System Design and Implementation: Building Agentic AI Systems Using FastAPI and LangGraph》随着人工智能(AI)技术的迅猛发展,智能体(Agent)作为能够自主感知、推理、决策和行动的实体,正逐渐成为构建复杂智能系统的核心。从个性化推荐、客户服务到

AI天才研究院 352

Python 爬虫实战:豆瓣 / IMDB 电影数据抓取(评分 + 剧情 + 演员阵容结构化处理)

在数据为王的时代,电影数据是进行市场分析、推荐系统构建和学术研究的重要资源。豆瓣和 IMDB 作为国内外最具影响力的电影评分和资讯网站,包含了海量高质量的电影数据。本文将带领你从零开始,构建一个健壮的 Python 爬虫,用于抓取豆瓣和 IMDB 的电影信息,并将其中的非结构化数据(如剧情简介、演员列表)进行清洗和结构化处理,最终存储到便于分析的结构化文件(如 CSV)中。

yansideyucsdn的博客 956

热补丁:为什么Windows API都以无意义的 mov edi,edi 开头?

为什么Windows函数都以无意义的MOVEDI、EDI指令开始? 我们参考Windows 的反汇编,返现函数的开始都是以mov edi,edi,它看似毫无意义(该指令将寄存器复制到自己,并没有更新标志;这是完全没有意义的。) 原因是:这是故意设计的热补丁(hot-patching)。 热补丁 这个MOV EDI, EDI指令是两个字节。NOP,这仅够在跳转指令中进行修补,以便可以动态更新函数,即运行时修改一个函数的行为。 修改过程如下: 把MOV EDI, EDI修改为一条短跳转指令(一条短跳转指令恰好

CodeBowl的博客 605

2025届程序技术类笔试题

希尔排序在直接插入排序的基础上进行了改进,它通过比较相距一定间隔的元素来进行,各轮比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一轮排序为止。某人逆着水流的方向向岸边划船,每次行进前进x米后需要休息一下,休息期间船会自行倒退y米,每次休息后再次行进,前进距离缩短1/5,若起始距离岸边为m米,问:能否到达岸上,需要行进多少次才能上岸。直接插入排序的原理是将第i个元素插入前面i-1个已排好序的记录中,将比第i个元素大的记录依次向后移动一个位置,将第i个元素插入空位。第二轮相邻比较,后移2次。

博客 598

Unity(新机)安装失败解决办法

Unity(新机)安装失败原因及解决方法一、安装失败情况二、我的解决办法 一、安装失败情况 前言:由于开发需要,我买了一个主机电脑,在新装Unity的时候,Unity出现了缺失系统文件的情况,并由此导致了一下的错误,我仅保留了部分截图 安装好后出现这个画面: 忽略后进去,我写了一个Debug:Hello Unity,但是他并不能运行 以及告诉你你缺失一个文件: 二、我的解决办法 后来我看了一下我的电脑,发现是Win7,后来重新装机,装了一个Win10,再安装Unity这些问题就解决了 顺便说一句,Un

Z_hongli的博客 7866

100天精通Python(基础篇)——第2天:基础语法详解(标识符、保留字、注释与代码结构)

100天精通Python(基础篇)——第2天:基础语法详解(标识符、保留字、注释与代码结构)

努力让自己发光,对的人才能迎着光而来 34万+

educoder实训——计算几何形状的表面积与体积

educoder python实训

qq_41234663的博客 1230

Unity破解不成功解决方案

Unity破解不成功解决方案

w36680130的博客 2688

[Python图像处理] 一.图像处理基础知识及OpenCV入门函数

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 同时推荐作者的C++图像系列知识: [数字图像处理] 一.MFC详解显示BMP格式图片 [数字图像处理] 二.MFC单文档分割窗...

杨秀璋的专栏 7万+

必知必会-Hot Patch(热补丁)的两种方案

素闻hot patch热补丁,它到底是个什么鬼?我之前只听说过,它很给力,实际上我在小学时候已经听说热补丁,国防科大教授让我们给系统打热补丁。 先看这里: 我想出来的办法代码是 热补丁Hook多线程下InlineHook解决方法-文章作者的做法 我的分析截图 原文 优缺点分析 如何对多线程程序进行补丁正是另人苦恼的事情,前两天因为工作遇到要inline hook的问

KD的疯狂实验室 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

hotpatch的参考文档和一些加载驱动或者xx的方法

hotpatch的参考文档和一些加载驱动或者xx的方法

1241

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Windows内核遍历驱动模块源码分析

要获取windows 内核中所有驱动模块信息,调用 系统服务函数 NtQuerySystemInformation,参数SystemInformationClass 传入SystemModuleInformation.  NtQuerySystemInformation申明如下: // // System Information Classes. // typedef enum _S

radicwei的专栏 2634

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hot patching

Online Patching 说明说明:该部分内容摘自OCP 050教材。在Oracle 11g中提出了online patch(也叫hot patch)的特性;Hot patching允许我们在实例始终在线的情况下安装,启用或禁用一个修复补丁(fix)或者诊断补丁(diagnostic patches)。使用热补丁可以安装、启用和禁用正在运行的活动Oracle 实例...

weixin_34302561的博客 173

Inline HOOK API 改进版(hot-patching)

记得在之前写过一篇hook api的文章(C/C++ HOOK API(原理深入剖析之-LoadLibraryA)),那篇文章主要原理是构造一块代码字节,将LoadLibraryA函数的前面16个字节给修改,然后跳转到自定义的函数中。要调用正常的函数时,又将其unHook,这样一来再一次调用中,有一次unhook和一次hook,操作显得过于频繁。而且hook与unhook当时设计成了thiscall,因此维护传递this的寄存器(通常是ecx)就成了必然,再加上参数的传递,__Inline_Hook_Fun

技术思行 1万+

x86_64运行时动态替换函数的hotpatch机制

昨天我发了一篇关于替换运行中的内核函数的文章:Linux内核如何替换内核函数并调用原始函数 :https://blog.youkuaiyun.com/dog250/article/d...

Linux阅码场 1107

【转自论坛】系统API中如何实现hotpatching。。。

原帖链接:http://bbs.youkuaiyun.com/topics/390940473?page=1#post-400726264 问题的来源于调试若干个系统的API函数,发现所有的系统API函数的开始出的汇编代码都会有如下的这个样子 76754A86   nop                             // 都会出现 76754A87   nop

YSBJ123的博客 932

BUG:Failed to create or upgrade OLR

64位CPU安装32位ORACLE参考链接:http://blog.youkuaiyun.com/robinson_0612/article/details/8294969patch: p8670579_112010_LINUX.zip如果...

cuichanla2083的博客 329

jQuery图片放大镜插件

运行效果: 代码编辑: 响应式jQuery图片放大镜插件

niuyongaiai的博客 4013

Navicat Premium 15 注册出现 No All Pattern Found! File Already Patched?

Navicat Premium 注册出现 No All Pattern Found! File Already Patched?

ZChen1996的博客 3万+

内核模式到用户模式的回调函数----这篇文章是十年前国外大牛写的

内核模式到用户模式的回调函数http://www.nynaeve.net/?p=200        NTDLL 拥有一些特定的函数被内核用来代表用户模式执行特定的功能。尽管理解这些函数对于特定的功能(比如用户模式APC)的底层实现的理解是有用的,这些函数提供的功能非常的简单。        下面是一些NTDLL导出的,内核用于与用户模式通讯的函数: 1.KiUserExceptionDis

商少 9128

Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明

一.官网说明MOS 的文档:RDBMSOnline Patching Aka Hot Patching [ID 761111.1] 有说明。这里取部分内容。A regular RDBMSpatch is comprised of one or more object (.o) files and/or libraries (.afiles). Installing a regular p...

weixin_30691871的博客 396

微软技术日报 11-09:.NET 8 与 9 明日同时停止支持,注册表编辑器出了 WinUI 3 版

今天这四条消息的共同点是收口。.NET 8 和 9 的支持期到点,注册表编辑器的新界面只放在仓库里给人看,GitHub 把一类危险触发器按住默认,微软在安全报告里把防线从地址黑名单挪到行为。收口并不等于关门。.NET 10 还在支持期里,被按住的触发器可以用策略按文件放回来,实验室里的样例随时可能变成产品。区别在于这些动作要有人签字,不再是默认开着。如果今天只做一件事,去看一眼构建机上的 .NET 版本。明天之后,8 和 9 的漏洞补丁不会再来了。

海盗Sharp的博客 383
上一篇: Object-Level Deceiving / Detouring
下一篇: Yahoo! 助手(3721) ActiveX远程代码执行漏洞
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值