什么叫rootkit? 它是由有用的小型程序组成的工具包,使得攻击者能够保持访问计算机上具有最高权限的用户“root”.rootkit是能够持久或可靠地、无法检测地存在于计算机上的一组程序和代码. rootkit主要分为下列大类: 1 进程隐藏 2 文件隐藏 3 端口隐藏 4 注册表隐藏 5 驱动服务隐藏 Part I: 进程隐藏 一:序言 下列情况不在讨论之中(没进程) 1 通过CreateRemoteThread Inject代码到另一个进程(有种病毒就用这种方法,实现内存感染的;其实还有更多应用) 2 通过CreateRemoteThread LoadLibray一dll到另一个进程(屏蔽Ctrl+Alt+Del,就是通过这种方法和SetWindowLog实现) 二:进程隐藏 1 Hook/InlineHook Api NtQuerySystemInformation(taskmgr.exe就是用这个函数得到Process list) 2 Hook/InlineHook Api Process32Next 3 把要隐藏的进程的EPROCESS从LIST_ENTRY中摘除 a)ring0下驱动实现,注意:Nt/2000/xp/2003中PID和FLINK在EPROCESS中的offset不尽相同 b)ring3下利用call gate结合/Device/PhysicalMemory内核对象实现 二:检测进程隐藏 我们重要讨论一下杀毒软件Kaspersky和rootkit检测工具Icesword的两种方法: 1 kaspersky的方法:kaspersky从6.0中加入了主动防御功能,它detour了SwapContext. lkd> u KiSwapThread L20 nt!KiSwapThread: 804dd66e 8bff mov edi,edi 804dd670 56 push esi 804dd671 57 push edi 804dd672 3ea120f0dfff mov eax,ds:[ffdff020] 804dd678 8bf0 mov esi,eax 804dd67a 8b4608 mov eax,[esi+0x8] 804dd67d 85c0 test eax,eax 804dd67f 8b7e04 mov edi,[esi+0x4] 804dd682 0f8557ba0000 jne nt!KiSwapThread+0x16 (804e90df) 804dd688 53 push ebx 804dd689 0fbe5e10 movsx ebx,byte ptr [esi+0x10] 804dd68d 33d2 xor edx,edx 804dd68f 8bcb mov ecx,ebx 804dd691 e86bffffff call nt!KiFindReadyThread (804dd601) 804dd696 85c0 test eax,eax 804dd698 0f843e990000 je nt!KiSwapThread+0x2e (804e6fdc) 804dd69e 5b pop ebx 804dd69f 8bc8 mov ecx,eax 804dd6a1 e80cf7ffff call nt!KiSwapContext (804dcdb2) 804dd6a6 84c0 test al,al 804dd6a8 8a4f58 mov cl,[edi+0x58] 804dd6ab 8b7f54 mov edi,[edi+0x54] 804dd6ae 8b3570864d80 mov esi,[nt!_imp_KfLowerIrql (804d8670)] 804dd6b4 0f85d10a0100 jne nt!KiSwapThread+0x56 (804ee18b) 804dd6ba ffd6 call esi 804dd6bc 8bc7 mov eax,edi 804dd6be 5f pop edi 804dd6bf 5e pop esi 804dd6c0 c3 ret lkd> u KiSwapContext L20 nt!KiSwapContext: 804dcdb2 83ec10 sub esp,0x10 804dcdb5 895c240c mov [esp+0xc],ebx 804dcdb9 89742408 mov [esp+0x8],esi 804dcdbd 897c2404 mov [esp+0x4],edi 804dcdc1 892c24 mov [esp],ebp 804dcdc4 8b1d1cf0dfff mov ebx,[ffdff01c] 804dcdca 8bf1 mov esi,ecx 804dcdcc 8bbb24010000 mov edi,[ebx+0x124] 804dcdd2 89b324010000 mov [ebx+0x124],esi 804dcdd8 8a4f58 mov cl,[edi+0x58] 804dcddb e8d9000000 call nt!SwapContext (804dceb9) 804dcde0 8b2c24 mov ebp,[esp] 804dcde3 8b7c2404 mov edi,[esp+0x4] 804dcde7 8b742408 mov esi,[esp+0x8] 804dcdeb 8b5c240c mov ebx,[esp+0xc] 804dcdef 83c410 add esp,0x10 804dcdf2 c3 ret lkd> u SwapContext L10 nt!SwapContext: 804dceb9 0ac9 or cl,cl 804dcebb 26c6462d02 mov byte ptr es:[esi+0x2d],0x2 804dcec0 9c pushfd 804dcec1 8b0b mov ecx,[ebx] 804dcec3 e948cfa077 jmp f7ee9e10(注意:这个地址不在NTOSKRNL.EXE范围中,落在klif.sys范围中,<它用了相对转跳,这样可以节约两个字节,cs:08>) 804dcec8 90 nop 804dcec9 90 nop 804dceca 51 push ecx 804dcecb 0f8534010000 jne nt!SwapContext+0x14d (804dd005) 804dced1 833d8c29568000 cmp dword ptr [nt!PPerfGlobalGroupMask (8056298c)],0x0 804dced8 0f85fe000000 jne nt!SwapContext+0x124 (804dcfdc) 804dcede 0f20c5 mov ebp,cr0 804dcee1 8bd5 mov edx,ebp 804dcee3 8a4e2c mov cl,[esi+0x2c] 804dcee6 884b50 mov [ebx+0x50],cl 804dcee9 fa cli 考虑到机器的效率,SwapContext是用汇编代码实现的,看看它具体功能(实现自己看代码吧:)): ;++ ; ; Routine Description: ; ; This routine is called to swap context from one thread to the next. ; It swaps context, flushes the data, instruction, and translation ; buffer caches, restores nonvolatile integer registers, and returns ; to its caller. ; ; N.B. It is assumed that the caller (only caller's are within this ; module) saved the nonvolatile registers, ebx, esi, edi, and ; ebp. This enables the caller to have more registers available. ; ; Arguments: ; ; cl - APC interrupt bypass disable (zero enable, nonzero disable). ; edi - Address of previous thread. ; esi - Address of next thread. ; ebx - Address of PCR. ; ; Return value: ; ; al - Kernel APC pending. ; ebx - Address of PCR. ; esi - Address of current thread object. ; ;-- (虽然悬挂或等待的线程,不会获得cpu时间,但在SwapContext的时候仍然要检测,知道Thread了,得到对应Process也就容易了) 注:这个方法最初是J. Butler提出的,参见:http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1232409 2 IceSword的方法:以前的方法是检测EPRCOESS,后来改成了PspCidTable a)全局变量PspCidTable是一个HANDLE_TABLE的指针,这个变量并没有被NTOSKRNL导出,这个HANDLE_TABLE的表保存着所有进程和线程对象的指针. b)PID(进程ID)和 ThreadID(线程ID)就是在这个句柄表中的索引,这个HANDLE_TABLE不属于任何进程,也没有链在HANDLE_TABLE链上. c)PspCidTable在PsLookupProcessByProcessId中被用到,所以可以在此函数中搜索PspCidTalbe变量以定位其地址. d)得到PspCidTable这个句柄表地址后,IceSword调用ExEnumHandleTable. 这个函数的函数原形是: BOOLEAN ExEnumHandleTable( IN PHANDLE_TABLE HandleTable, IN EX_ENUMERATE_HANDLE_ROUTINE EnumHandleProcedure, IN PVOID EnumParameter, OUT PHANDLE Handle OPTIONAL) 参数说明: HandleTable : 句柄表,可以用PspCidTable做参数. EnumHandleProcedure: 类型为BOOLEAN (*EX_ENUMERATE_HANDLE_ROUTINE)(HANDLE_TALBE_ENTRY*,DWORD PID,PVOID Param)函数指针. EnumParameter : 传送给EnumHandleProcedure函数的参数. Handle : 此函数返回True时此参数才有效,为停止枚举前所枚举的句柄(可选). 功能说明: 调用ExEnumHandleTable函数的时,在每次枚举到表中的一个句柄时都会调用一次回调函数; 回调函数返回值为FALSE时继续枚举句柄表,返回TRUE时则停止枚举. 我们来看看他的具体实现吧! BOOLEAN ExEnumHandleTable( IN PHANDLE_TABLE HandleTable, IN EX_ENUMERATE_HANDLE_ROUTINE EnumHandleProcedure, IN PVOID EnumParameter, OUT PHANDLE Handle OPTIONAL )
/*++
Routine Description:
This function enumerates all the valid handles in a handle table. For each valid handle in the handle table, the specified eumeration function is called. If the enumeration function returns TRUE, then the enumeration is stopped, the current handle is returned to the caller via the optional Handle parameter, and this function returns TRUE to indicated that the enumeration stopped at a specific handle.
Arguments:
HandleTable - Supplies a pointer to a handle table.
EnumHandleProcedure - Supplies a pointer to a fucntion to call for each valid handle in the enumerated handle table.
EnumParameter - Supplies an uninterpreted 32-bit value that is passed to the EnumHandleProcedure each time it is called.
Handle - Supplies an optional pointer a variable that receives the Handle value that the enumeration stopped at. Contents of the variable only valid if this function returns TRUE.
Return Value:
If the enumeration stopped at a specific handle, then a value of TRUE is returned. Otherwise, a value of FALSE is returned.
--*/
{
PHANDLE_ENTRY HandleEntry; BOOLEAN ResultValue; PHANDLE_ENTRY TableEntries; PHANDLE_ENTRY TableBound; ULONG TableIndex;
PAGED_CODE();
ASSERT(HandleTable != NULL);
// // Lock the handle table exclusive and enumerate the handle entries. //
ResultValue = FALSE; ExLockHandleTableShared(HandleTable); TableBound = HandleTable->TableBound; TableEntries = HandleTable->TableEntries; HandleEntry = &TableEntries[1]; while (HandleEntry < TableBound) { if (ExIsEntryUsed(TableEntries, TableBound, HandleEntry)) { TableIndex = HandleEntry - TableEntries; if ((*EnumHandleProcedure)(HandleEntry, INDEX_TO_HANDLE(TableIndex), EnumParameter)) {
if (ARGUMENT_PRESENT(Handle)) { *Handle = INDEX_TO_HANDLE(TableIndex); }
ResultValue = TRUE; break; } }
HandleEntry += 1; }
ExUnlockHandleTableShared(HandleTable); return ResultValue; } (PS:IceSword的检测方法部分参见匿名用户的文章,非常感谢!)
相关推荐
国央企创新负责人在推动内部技术成果转化与外部协同创新时,如何实现资源的高效整合与协同联动?.docx
国央企创新负责人在推动内部技术成果转化与外部协同创新时,如何实现资源的高效整合与协同联动?
Rootkit检测技术发展现状
Rootkit 这一概念最早出现于上个世纪九十年代初期,CERT Coordination Center(CERT/CC) 于1994年在 CA-1994-01 这篇安全咨询报告中使用了 Rootkit 这个词汇。在这之后 Rootkit 技术发展迅速,这种快速发展的态势在 2000 年达到了顶峰。2000年后,Rootkit 技术的发展也进入了低潮期,但是对于 Rootkit 技术的研究却并未停滞。在 APT 攻击日益流行的趋势下,Rootkit 攻击和检测技术也同样会迎来新的发展高潮。 在往期的Roo
两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)
内容概要:本文介绍了“两路半桥LLC谐振变换器软开关Simulink仿真”资源包,重点在于基于Simulink平台对两路半桥LLC谐振变换器进行高精度建模与动态仿真,特别考虑了谐振参数不一致及分裂电容等非理想工况对系统性能的影响。该仿真模型不仅涵盖了主电路拓扑、软开关实现机制与谐振网络设计,还深入分析了不同参数配置下系统的启动特性、稳态效率、动态响应及软开关条件的满足情况。通过参数扫描与对比仿真,帮助用户掌握LLC变换器的关键设计要素与优化方法,具备较强的工程指导价值和科研教学意义。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频开关电源、新能源变换器、车载充电机等领域的研发工程师和技术人员。; 使用场景及目标:① 掌握两路并联半桥LLC谐振变换器的建模与仿真方法;② 理解软开关技术在提升变换器效率与降低EMI方面的关键作用;③ 分析谐振参数偏差与分裂电容结构对系统均流特性、增益曲线及软开关范围的影响;④ 支持科研项目中的拓扑验证、控制策略开发与故障工况分析; 阅读建议:建议结合Simulink仿真模型与配套说明文档进行学习,重点关注谐振腔参数设置、驱动时序设计及软开关波形观测;可通过调整谐振电感、电容值或引入参数失配,观察系统行为变化,深入理解LLC变换器的稳定边界与优化设计原则。
Rootkit Detection and Removal
Dealing with the threat of trojan rootkitsRootkits are not themselves malware programs. Rather rootkits are programs that hide the presence of malware programs.They do this using a variety of clever t
双向全桥CLLC谐振变换器仿真模型(Simulink仿真实现)
内容概要:本文系统介绍了双向全桥CLLC谐振变换器的Simulink仿真模型,重点阐述了变频控制、闭环仿真及其与多种电力电子拓扑(如维也纳整流器、DAB变换器、图腾柱PFC等)的联合仿真设计。资源包涵盖2.5kW双向全桥LLC、V2G电动汽车充放电系统、三相PFC、多相交错LLC等多种变换器的仿真案例,并深入展示了三电平VIENNA整流器在双闭环PI控制与SVPWM调制策略下,结合上下电容电压差值补偿实现中点电位平衡的先进控制方法。通过仿真验证,该策略不仅有效维持了800V直流母线电压的稳定,还在动态工况下显著提升了电容电压的均衡度,同时保持了较低的输入电流THD,充分体现了SVPWM与中点平衡控制协同优化的技术优势。; 适合人群:具备电力电子与自动控制理论基础,从事新能源发电、电动汽车、工业电源、微电网等领域的研究生、工程师及科研人员。; 使用场景及目标:① 学习并构建高频谐振变换器(如LLC、CLLC)的Simulink仿真模型,掌握其变频与混合控制策略;② 深入理解并应用中点电位平衡、双闭环PI控制、SVPWM调制等核心技术于VIENNA等三电平变换器中;③ 复现高水平期刊论文中的控制算法,服务于科研项目申报、学术论文撰写或工程产品开发。; 阅读建议:该资源为综合性仿真资料库,建议使用者结合自身研究方向(如电动汽车充电、新能源并网)选择对应案例进行精学,重点关注控制策略的设计逻辑、仿真参数的整定方法以及SVPWM与中点平衡的协同机制,并充分利用附带的计算书和参考文献深化理解,以实现从仿真模型到实际工程应用的顺利转化。
全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)
全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)
隐藏进程 hook ZwQuerySystemInformation
原来的代码是隐藏_root_为了调试方便,改为了AcroRd32// BASIC ROOTKIT that hides processes// ----------------------------------------------------------// v0.1 - Initial, Greg Hoglund (hoglund@rootkit.com)// v0.3 - Added defines to compile on W2K, and comments. Rich// v0.4 - Fi
虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型(simulink仿真实现)
内容概要:本文提供了“虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型”的Simulink仿真实现方法,系统阐述了如何通过仿真手段研究VSG在电力系统中的动态响应特性,重点聚焦于其惯量与阻尼的自适应控制策略。文中详细说明了模型构建流程,涵盖控制算法设计、参数调节、根轨迹分析等内容,并通过对比不同调节系数下的系统响应,深入探讨了控制参数对系统稳定性与动态性能的影响。该仿真模型有效复现了VSG模拟传统同步发电机惯性与阻尼特性的能力,对于提升新能源并网系统的频率稳定性和抗扰动能力具有重要研究价值。; 适合人群:具备电力系统、自动化或相关领域基础知识,从事新能源并网、微电网控制、电力电子与电力系统仿真研究的研究生、科研人员及工程师。; 使用场景及目标:①用于教学与科研中深入理解虚拟同步发电机的工作原理及其在现代电力系统中的应用;②为新能源发电系统接入电网时的稳定性分析与控制策略设计提供仿真验证平台;③支持对VSG控制参数进行优化,提升系统应对负荷波动和扰动的能力。; 阅读建议:建议读者结合Matlab/Simulink软件动手实践,按照文档结构逐步搭建仿真模型,重点关注控制环路设计与参数整定部分,同时参考提供的代码与仿真结果进行对比分析,以加深对VSG自适应控制机制的理解。
:如何使用挂钩`NtQuerySystemInformation` API以隐藏特定进程的DLL注入技巧
通过挂钩API来隐藏进程是一个强大但需要谨慎使用的技术。正确地应用这种技术可以为开发者提供深入的系统级别的控制,但同时也带来了其它风险和挑战。在实际的应用中,除了技术层面的挑战外,使用这种方法也需要考虑其法律和道德方面的影响。特别是当它被用于恶意目的时,它可能会导致法律纠纷或其他负面后果。
两相交错并联Boost电路仿真模型(Simulink仿真实现)
内容概要:本文介绍了“两相交错并联Boost电路仿真模型(Simulink仿真实现)”的技术资源,属于电力电子变换器领域的仿真研究内容。该模型基于Simulink平台构建,旨在深入分析两相交错并联Boost电路的工作原理、动态响应特性及控制策略。交错并联结构通过错开各相开关管的导通时刻,有效降低输入电流纹波、提升系统效率与功率密度,适用于中高功率DC-DC变换应用场景。资源包含完整的主电路建模、PWM驱动信号生成、闭环控制器设计(如电压/电流双闭环控制)等关键模块,并可能涵盖软启动、均流控制等关键技术问题。整个仿真模型强调理论分析与工程实践的紧密结合,不仅有助于理解电路基本行为,也为优化控制算法提供验证平台,服务于科研与教学需求。; 适合人群:电气工程、自动化、电力电子及相关专业的高校本科生、研究生,以及从事电源系统研发的工程技术人员,具备一定的电路理论、自动控制原理和Simulink仿真基础者更佳。; 使用场景及目标:① 学习和掌握两相交错并联Boost电路的拓扑结构、工作机理及性能优势;② 利用Simulink进行电力电子电路的建模与仿真,深入理解PWM控制、闭环调节、均流控制等核心技术的应用;③ 为科研项目、课程设计或毕业设计提供可复用的仿真案例和技术支持,辅助开展中高功率电源系统的创新设计与优化研究。; 阅读建议:建议结合Simulink软件动手搭建并调试模型,通过调整占空比、开关频率、电感参数等变量,观察其对输入电流纹波、输出电压稳定性及动态响应的影响,以深化对电路特性的理解;同时可参考文中列出的其他相关资源(如LLC、PFC等仿真模型)进行横向对比学习,拓宽电力电子系统设计视野。
区域电网含风光火压缩空气储能抽水蓄能以及电化学储能的联合调度,加入IEEE39系统,进行潮流计算,分析电能质量研究(Matlab代码实现)
内容概要:本文研究了包含风能、太阳能、火电以及压缩空气储能、抽水蓄能和电化学储能等多种能源形式的区域电网联合调度问题,通过将系统接入IEEE 39节点标准测试系统,利用Matlab平台开展潮流计算与电能质量分析,旨在提升高比例可再生能源接入背景下电网运行的稳定性与供电品质。研究重点涵盖多类型电源与多种储能系统的协调优化调度策略设计,深入探讨储能系统在削峰填谷、平滑新能源出力波动方面的关键作用,并对复杂运行工况下电压偏差、频率波动、谐波污染等电能质量问题进行评估与改善。通过构建完整的仿真模型,系统性地分析了联合调度对电网电能质量的影响机制,为现代电力系统中多能互补与协同控制提供了理论依据和技术参考。; 适合人群:具备电力系统分析、优化调度及电能质量相关基础知识,熟悉Matlab/Simulink仿真环境的研究生、科研人员及电力系统相关领域的工程师。; 使用场景及目标:①为含多种储能的区域电网联合调度研究提供完整的Matlab仿真案例与开源代码参考;②分析大规模新能源接入对IEEE 39系统潮流分布及电能质量的综合影响,并定量评估不同类型储能系统的调控效果;③为电力系统优化调度、电能质量综合治理、多能协同控制等学术研究与工程项目提供可复现的技术支撑与解决方案。; 阅读建议:本资源以Matlab代码实现为核心,读者应在掌握电力系统基本理论的基础上,重点关注联合调度的数学建模过程、储能系统充放电策略的制定逻辑以及电能质量各项评价指标的计算方法。建议在学习过程中动手调试仿真代码,尝试调整系统参数、优化目标权重或改变新能源渗透率,以深入理解系统动态行为与控制策略的有效性。
Rootkit---进程隐藏
进程隐藏
基于拟蒙特卡洛模拟法的随机潮流计算matlab程序
由式(4-11)可知,蒙特卡洛模拟法的计算量不受电力系统规模大小影响,因此该方法在一些复杂的电力系统中可以得到应用,包括处理电力系统中有多个间歇性新能源接入的问题,解决系统中多个节点之间相关性问题等等。本章在此基础上提出了基于拟蒙特卡洛模拟的随机潮流计算方法,并且对拟蒙特卡洛法中的拟随机数序列进行了改进,大大提高了随机潮流的计算效率。模拟法的具体思路如下:基于实际工程问题的求解需要,建立与之相对应的随机模拟过程和随机概率模型,使得它们的参数,包括概率分布或者数学期望,能够等于问题的实际解;
PspCidTable综合概述
PspCidTable概述 2009-03-28 11:27 PspCidTable也是一个句柄表,其格式与普通的句柄表是完全一样的.但它与每 个进程私有的句柄表有以下不同: 1.PspCidTable中存放的对象是系统中所有的进线程对象,其索引就是PID和TID 2.PspCidTable中存放的直接是对象体(EPROCESS和ETHREAD),而每个进程私有...
ROS2实战:打造智能巡检机器人的关键技术与实现
本文详细介绍了基于ROS2和Navigation2构建智能巡检机器人的完整实战流程。通过设计主从协作的事件驱动架构,实现了机器人在已知地图中的自动导航、定点语音播报和环境图像采集功能。文章涵盖了从环境搭建、仿真配置到核心控制节点、语音服务与图像记录模块的代码实现,为开发者打造实用的自动巡检机器人提供了清晰的技术指南。
maxwell与steady state thermal 通过workbench耦合仿真
文章目录maxwellsteady state thermal maxwell 1加入maxwell并打开 2导入模型 3选择求解器类型:涡流求解器eddy current 4修改模型名字不能带_等特殊符号 5为模型赋材料 6设立3D边界,各边电流进出方向为0其余方向300 7设置激励条件,可设置电流大小,相位,方向 8设置集肤深度,选取中间铜导体的体然后设置,如何设置看帮助文档 9求解设置 迭代步数 收敛精度 交流电频率 10验证条件满足计算 11求解 发现无法求解,删除ai
SSDT HIDE Process
原文出处:http://bbs.tian6.com/redirect.php?tid=12021&goto=lastpost前言:这只是一篇类似于教学性的paper,在本文中阐述了一些SSDT HOOK的基本原理与实现方法,方法并不高深也不新颖,只是方便如同我一般的小菜们能够了解SSDT HOOK的概念,并通过一个小程序实现ring0下SSDT HOOK来隐藏特定进程。大牛请飘过。什么是S
DP_AUX辅助通道介绍
DisplayPort(简称DP)是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准。其中辅助通道(AUX)是一条独立双向半双工的传输通道,它也是一对差分信号线。其数据传输速率1Mbps,用来传输配置参数与指令。
RootKit Ring0用hook方式隐藏进程
以前使用文件过滤驱动,测试了下内核级的hook好象,就实现了进程的隐藏,好象比filter driver简单得多,找时间添加hook功能
[LaTeX] 调整参考文献的格式(References),包括作者名缩写,行距,字体,引用顺序等等
在此记录我对LaTeX中参考文献references的尝试,主要涵盖如题几个方面。
【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】
向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数)
进程隐藏与进程保护(SSDT Hook 实现)
进程隐藏与进程保护(SSDT Hook 实现)(一) 文章目录: 1. 引子 – Hook 技术: 2. SSDT 简介: 3. 应用层调用 Win32 API 的完整执行流程: 4. 详解 SSDT: 5. SSDT Hook 原理: 6. 小结: 1. 引子 – Hook 技术:
模型可解释性分析:基于SHAP的深度探索
SHAP模型可解释性分析摘要 本文系统性地介绍了SHAP(SHapley Additive exPlanations)方法在机器学习模型可解释性分析中的应用。SHAP基于博弈论的Shapley值理论,为特征重要性评估提供了统一框架。文章详细阐述了四种核心算法:Kernel SHAP(模型无关方法)、Tree SHAP(针对树模型的高效算法)、Deep SHAP(适用于深度学习)和Linear SHAP(线性模型专用)。通过Python实现展示了从数据准备到SHAP分析的全流程,包括摘要图、依赖图等可视化技术
1994



被折叠的 条评论
为什么被折叠?



