ACPI!ParseScope函数分析中的ACPI!ParseOpcode到ACPI!ParseTerm中的ACPI!ParsePackageLen

ACPI!ParseScope函数分析中的ACPI!ParseOpcode到ACPI!ParseTerm中的ACPI!ParsePackageLen

Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0E._MIN, PMMN) // _MIN: Minimum Base Address
CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0E._MAX, PMMX) // _MAX: Maximum Base Address
And (^^^PWR.PMBA, 0xFFFFFFFE, PMMN)
Store (PMMN, PMMX)
CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0F._MIN, SMMN) // _MIN: Minimum Base Address
CreateWordField (RSRC, \_SB.PCI0.ISA.MBRD._Y0F._MAX, SMMX) // _MAX: Maximum Base Address
And (^^^PWR.SBBA, 0xFFFFFFFE, SMMN)
Store (SMMN, SMMX)
Return (RSRC)
}
}

0: kd> t
eax=8997dd00 ebx=f743a948 ecx=8997c000 edx=899af000 esi=8997c000 edi=8997dd9c
eip=f74274fd esp=f789a134 ebp=f789a158 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParseScope:
f74274fd 55 push ebp
0: kd> kc
#
00 ACPI!ParseOpcode
01 ACPI!ParseScope
02 ACPI!RunContext
03 ACPI!InsertReadyQueue
04 ACPI!RestartContext
05 ACPI!SyncLoadDDB
06 ACPI!AMLILoadDDB
07 ACPI!ACPIInitializeDDB
08 ACPI!ACPIInitializeDDBs
09 ACPI!ACPIInitialize
0a ACPI!ACPIInitStartACPI
0b ACPI!ACPIRootIrpStartDevice
0c ACPI!ACPIDispatchIrp
0d nt!IofCallDriver
0e nt!IopSynchronousCall
0f nt!IopStartDevice
10 nt!PipProcessStartPhase1
11 nt!PipProcessDevNodeTree
12 nt!PipDeviceActionWorker
13 nt!PipRequestDeviceAction
14 nt!IopInitializeBootDrivers
15 nt!IoInitSystem
16 nt!Phase1Initialization
17 nt!PspSystemThreadStartup
18 nt!KiThreadStartup

0: kd> dv
pctxt = 0x8997c000
pscope = 0x8997dd9c
rc = 0n0
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_scope *)0x8997dd9c)
((ACPI!_scope *)0x8997dd9c) : 0x8997dd9c [Type: _scope *]
[+0x000] FrameHdr [Type: _framehdr]
[+0x010] pbOpEnd : 0xf74c8e19 : 0x5b [Type: unsigned char *]
[+0x014] pbOpRet : 0x0 [Type: unsigned char *]
[+0x018] pnsPrevScope : 0x899b2278 [Type: _NSObj *]
[+0x01c] pownerPrev : 0x899af330 [Type: _objowner *]
[+0x020] pheapPrev : 0x899af000 [Type: _heap *]
[+0x024] pdataResult : 0x8997c040 [Type: _ObjData *]
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_ctxt *)0x8997c000)
((ACPI!_ctxt *)0x8997c000) : 0x8997c000 [Type: _ctxt *]
[+0x000] dwSig : 0x54585443 [Type: unsigned long]
[+0x004] pbCtxtEnd : 0x8997e000 : 0x54 [Type: unsigned char *]
[+0x008] listCtxt [Type: _List]
[+0x010] listQueue [Type: _List]
[+0x018] pplistCtxtQueue : 0x0 [Type: _List * *]
[+0x01c] plistResources : 0x0 [Type: _List *]
[+0x020] dwfCtxt : 0x10 [Type: unsigned long]
[+0x024] pnsObj : 0x0 [Type: _NSObj *]
[+0x028] pnsScope : 0x899b2300 [Type: _NSObj *]
[+0x02c] powner : 0x899af330 [Type: _objowner *]
[+0x030] pcall : 0x8997df34 [Type: _call *]
[+0x034] pnctxt : 0x0 [Type: _nestedctxt *]
[+0x038] dwSyncLevel : 0x0 [Type: unsigned long]
[+0x03c] pbOp : 0xf74c8da2 : 0x14 [Type: unsigned char *]

0: kd> db 0xf74c8da2
f74c8da21446 075f 43 52 53 08-8b 52 53 52 43 0a 9a 50 .F._CRS..RSRC..P
f74c8db2 4d 4d 4e 8b 52 53 52 43-0a 9c 50 4d 4d 58 7b 5e MMN.RSRC..PMMX{^
f74c8dc2 5e 5e 2e 50 57 52 5f 50-4d 42 41 0c fe ff ff ff ^^.PWR_PMBA.....
f74c8dd2 50 4d 4d 4e 70 50 4d 4d-4e 50 4d 4d 58 8b 52 53 PMMNpPMMNPMMX.RS
f74c8de2 52 43 0a a2 53 4d 4d 4e-8b 52 53 52 43 0a a4 53 RC..SMMN.RSRC..S
f74c8df2 4d 4d 58 7b 5e 5e 5e 2e-50 57 52 5f 53 42 42 41 MMX{^^^.PWR_SBBA
f74c8e02 0c fe ff ff ff 53 4d 4d-4e 70 53 4d 4d 4e 53 4d .....SMMNpSMMNSM
f74c8e12 4d 58 a4 52 53 52 43 5b-82 35 44 4d 41 43 08 5f MX.RSRC[.5DMAC._

0: kd> ?0xf74c8e19-0xf74c8da2
Evaluate expression: 119 = 00000077


case 1:
Stage1:
//
// Stage 1: Parse next opcode.
//
if (rc == AMLISTA_BREAK)
{
pctxt->pbOp = pscope->pbOpEnd;
rc = STATUS_SUCCESS;
}
else
{
while (pctxt->pbOp < pscope->pbOpEnd)
{


//
// Discard result of previous term if any.
//
FreeDataBuffs(pscope->pdataResult, 1);
if (((rc = ParseOpcode(pctxt, pscope->pbOpEnd,
pscope->pdataResult)) !=
STATUS_SUCCESS) ||
(&pscope->FrameHdr !=
(PFRAMEHDR)pctxt->LocalHeap.pbHeapEnd))
{
break;
}
}


0: kd> db 0xf74c8da2
f74c8da2 14 46 07 5f 43 52 53 08-8b 52 53 52 43 0a 9a 50 .F._CRS..RSRC..P
f74c8db2 4d 4d 4e 8b 52 53 52 43-0a 9c 50 4d 4d 58 7b 5e MMN.RSRC..PMMX{^
f74c8dc2 5e 5e 2e 50 57 52 5f 50-4d 42 41 0c fe ff ff ff ^^.PWR_PMBA.....
f74c8dd2 50 4d 4d 4e 70 50 4d 4d-4e 50 4d 4d 58 8b 52 53 PMMNpPMMNPMMX.RS
f74c8de2 52 43 0a a2 53 4d 4d 4e-8b 52 53 52 43 0a a4 53 RC..SMMN.RSRC..S
f74c8df2 4d 4d 58 7b 5e 5e 5e 2e-50 57 52 5f 53 42 42 41 MMX{^^^.PWR_SBBA
f74c8e02 0c fe ff ff ff 53 4d 4d-4e 70 53 4d 4d 4e 53 4d .....SMMNpSMMNSM
f74c8e12 4d 58 a4 52 53 52 43 5b-82 35 44 4d 41 43 08 5f MX.RSRC[.5DMAC._


0: kd> x ACPI!OpcodeTable
f74396b0 ACPI!OpcodeTable = struct _amlterm *[256]
0: kd> dx -id 0,0,899a2278 -r1 (*((ACPI!_amlterm * (*)[256])0xf74396b0))
(*((ACPI!_amlterm * (*)[256])0xf74396b0)) [Type: _amlterm * [256]]

[20] : 0xf7438e70 [Type: _amlterm *]

0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_amlterm *)0xf7438e70)
((ACPI!_amlterm *)0xf7438e70) : 0xf7438e70 [Type: _amlterm *]
[+0x000] pszTermName : 0xf742c6b8 : "Method" [Type: char *]
[+0x004] dwOpcode : 0x14 [Type: unsigned long]
[+0x008] pszArgTypes : 0xf742c6d0 : "NB" [Type: char *]
[+0x00c] dwTermClass : 0x2 [Type: unsigned long]
[+0x010] dwfOpcode : 0x1 [Type: unsigned long]
[+0x014] pfnCallBack : 0x0 [Type: long (__cdecl*)(unsigned long,unsigned long,_NSObj *,unsigned long)]
[+0x018] dwCBData : 0x0 [Type: unsigned long]
[+0x01c] pfnOpcode : 0xf742162e [Type: long (__cdecl*)()]
0: kd> u f742162e
ACPI!Method [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\namedobj.c @ 589]:
f742162e 55 push ebp
f742162f 8bec mov ebp,esp
f7421631 83ec0c sub esp,0Ch
f7421634 53 push ebx
f7421635 56 push esi
f7421636 57 push edi
f7421637 6a01 push 1
f7421639 68184643f7 push offset ACPI!`string' (f7434618)

else
{
//
// Must be an ASL Term.
//
pctxt->pbOp++;
rc = PushTerm(pctxt, pbOpTerm, pbScopeEnd, pamlterm, pdataResult);
}

0: kd> dx -id 0,0,899a2278 -r1 (*((ACPI!_heap *)0xf7438f2c))
(*((ACPI!_heap *)0xf7438f2c)) [Type: _heap]
[+0x000] dwSig : 0xf7421d37 [Type: unsigned long]
[+0x004] pbHeapEnd : 0xf742c674 : 0x42 [Type: unsigned char *]
[+0x008] pheapHead : 0xa5 [Type: _heap *]
[+0x00c] pheapNext : 0x0 [Type: _heap *]
[+0x010] pbHeapTop : 0x3 : Unable to read memory at Address 0x3 [Type: unsigned char *]
[+0x014] plistFreeHeap : 0x0 [Type: _List *]
[+0x018] Heap [Type: _heapobjhdr]

0: kd> t
eax=8997dd00 ebx=f743a948 ecx=8997c000 edx=00000028 esi=8997c000 edi=8997dd68
eip=f7427a34 esp=f789a134 ebp=f789a158 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParseTerm:
f7427a34 55 push ebp
0: kd> kc
#
00 ACPI!ParseTerm
01 ACPI!RunContext
02 ACPI!InsertReadyQueue
03 ACPI!RestartContext
04 ACPI!SyncLoadDDB
05 ACPI!AMLILoadDDB
06 ACPI!ACPIInitializeDDB
07 ACPI!ACPIInitializeDDBs
08 ACPI!ACPIInitialize
09 ACPI!ACPIInitStartACPI
0a ACPI!ACPIRootIrpStartDevice
0b ACPI!ACPIDispatchIrp
0c nt!IofCallDriver
0d nt!IopSynchronousCall
0e nt!IopStartDevice
0f nt!PipProcessStartPhase1
10 nt!PipProcessDevNodeTree
11 nt!PipDeviceActionWorker
12 nt!PipRequestDeviceAction
13 nt!IopInitializeBootDrivers
14 nt!IoInitSystem
15 nt!Phase1Initialization
16 nt!PspSystemThreadStartup
17 nt!KiThreadStartup
0: kd> dv
pctxt = 0x8997c000
pterm = 0x8997dd68
rc = 0n0
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_term *)0x8997dd68)
((ACPI!_term *)0x8997dd68) : 0x8997dd68 [Type: _term *]
[+0x000] FrameHdr [Type: _framehdr]
[+0x010] pbOpTerm : 0xf74c8da2 : 0x14 [Type: unsigned char *]
[+0x014] pbOpEnd : 0x0 [Type: unsigned char *]
[+0x018] pbScopeEnd : 0xf74c8e19 : 0x5b [Type: unsigned char *]
[+0x01c] pamlterm : 0xf7438e70 [Type: _amlterm *]
[+0x020] pnsObj : 0x0 [Type: _NSObj *]
[+0x024] iArg : 0 [Type: int]
[+0x028] icArgs : 2 [Type: int]
[+0x02c] pdataArgs : 0x899b2200 [Type: _ObjData *]
[+0x030] pdataResult : 0x8997c040 [Type: _ObjData *]
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_amlterm *)0xf7438e70)
((ACPI!_amlterm *)0xf7438e70) : 0xf7438e70 [Type: _amlterm *]
[+0x000] pszTermName : 0xf742c6b8 : "Method" [Type: char *]
[+0x004] dwOpcode : 0x14 [Type: unsigned long]
[+0x008] pszArgTypes : 0xf742c6d0 : "NB" [Type: char *]
[+0x00c] dwTermClass : 0x2 [Type: unsigned long]
[+0x010] dwfOpcode : 0x1 [Type: unsigned long]
[+0x014] pfnCallBack : 0x0 [Type: long (__cdecl*)(unsigned long,unsigned long,_NSObj *,unsigned long)]
[+0x018] dwCBData : 0x0 [Type: unsigned long]
[+0x01c] pfnOpcode : 0xf742162e [Type: long (__cdecl*)()]
0: kd> u f742162e
ACPI!Method [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\namedobj.c @ 589]:
f742162e 55 push ebp
f742162f 8bec mov ebp,esp
f7421631 83ec0c sub esp,0Ch
f7421634 53 push ebx
f7421635 56 push esi
f7421636 57 push edi
f7421637 6a01 push 1
f7421639 68184643f7 push offset ACPI!`string' (f7434618)


0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_ctxt *)0x8997c000)
((ACPI!_ctxt *)0x8997c000) : 0x8997c000 [Type: _ctxt *]
[+0x000] dwSig : 0x54585443 [Type: unsigned long]
[+0x004] pbCtxtEnd : 0x8997e000 : 0x54 [Type: unsigned char *]
[+0x008] listCtxt [Type: _List]
[+0x010] listQueue [Type: _List]
[+0x018] pplistCtxtQueue : 0x0 [Type: _List * *]
[+0x01c] plistResources : 0x0 [Type: _List *]
[+0x020] dwfCtxt : 0x10 [Type: unsigned long]
[+0x024] pnsObj : 0x0 [Type: _NSObj *]
[+0x028] pnsScope : 0x899b2300 [Type: _NSObj *]
[+0x02c] powner : 0x899af330 [Type: _objowner *]
[+0x030] pcall : 0x8997df34 [Type: _call *]
[+0x034] pnctxt : 0x0 [Type: _nestedctxt *]
[+0x038] dwSyncLevel : 0x0 [Type: unsigned long]
[+0x03c] pbOp : 0xf74c8da3 : 0x46 [Type: unsigned char *]

0: kd> db 0xf74c8da3
f74c8da3 46 07 5f 43 52 53 08 8b-52 53 52 43 0a 9a 50 4d F._CRS..RSRC..PM
f74c8db3 4d 4e 8b 52 53 52 43 0a-9c 50 4d 4d 58 7b 5e 5e MN.RSRC..PMMX{^^
f74c8dc3 5e 2e 50 57 52 5f 50 4d-42 41 0c fe ff ff ff 50 ^.PWR_PMBA.....P
f74c8dd3 4d 4d 4e 70 50 4d 4d 4e-50 4d 4d 58 8b 52 53 52 MMNpPMMNPMMX.RSR
f74c8de3 43 0a a2 53 4d 4d 4e 8b-52 53 52 43 0a a4 53 4d C..SMMN.RSRC..SM
f74c8df3 4d 58 7b 5e 5e 5e 2e 50-57 52 5f 53 42 42 41 0c MX{^^^.PWR_SBBA.
f74c8e03 fe ff ff ff 53 4d 4d 4e-70 53 4d 4d 4e 53 4d 4d ....SMMNpSMMNSMM
f74c8e13 58 a4 52 53 52 43 5b 82-35 44 4d 41 43 08 5f 48 X.RSRC[.5DMAC._H

if (pterm->pamlterm->dwfOpcode & OF_VARIABLE_LIST)
{
ParsePackageLen(&pctxt->pbOp, &pterm->pbOpEnd);
}

0: kd> t
eax=8997c03c ebx=8997c000 ecx=8997c000 edx=00000028 esi=8997dd68 edi=00000000
eip=f74266a0 esp=f789a118 ebp=f789a130 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen:
f74266a0 55 push ebp
0: kd> dv
ppbOp = 0x8997c03c
ppbOpNext = 0x8997dd7c


dwLen = (ULONG)(**ppbOp); edi=00000046

0: kd> p
eax=f74c8da4 ebx=8997dd7c ecx=8997c000 edx=00000001 esi=8997c03c edi=00000046
eip=f74266f1 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x51:
f74266f1 83e70f and edi,0Fh

dwLen &= 0x0000000f; edi=00000006
0: kd> p
eax=f74c8da4 ebx=8997dd7c ecx=8997c000 edx=00000001 esi=8997c03c edi=00000006
eip=f7426702 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x62:
f7426702 0fb618 movzx ebx,byte ptr [eax] ds:0023:f74c8da4=07

dwLen |= (ULONG)(**ppbOp) << (i*8 + 4); edi=00000076
0: kd> p
eax=f74c8da4 ebx=00000070 ecx=00000004 edx=00000001 esi=8997c03c edi=00000076
eip=f7426710 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x70:
f7426710 40 inc eax


0: kd> dv
ppbOp = 0x0000000c
ppbOpNext = 0x8997dd7c
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char * *)0x8997dd7c)
((ACPI!unsigned char * *)0x8997dd7c) : 0x8997dd7c [Type: unsigned char * *]
0xf74c8e19 : 0x5b [Type: unsigned char *]

ppbOpNext 表示需要解析的下一个字节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1119432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Aurix TC387 Can配置记录

一、MCMCAN介绍fSYN is supplied from fMCANH and fASYN is supplied from fMCAN from CCU. fSYN is used as the clock source for Register and RAM interface,fASYN is used to generate the nominal and fast CAN FD baudrates. It is recommended to use fASYN as 80, 40,…

python--数据结构--链表

最近会更新很多内容&#xff0c;感兴趣的友友支持一下吧&#xff01;&#xff01;一、链表介绍概述:属于线性结构, 即: 每个节点都有1个父节点(前驱节点) 和 1个子节点(后继节点)链表可以看做是 用链条(一根绳) 把节点连接起来的 一种结构.节点介绍(此处以 单链表举例):由 元素…

【计算机毕业设计案例】深度学习基于python的手势识别数字

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

2027年80%平台将出局?数藏行业合规化与技术革命双轨突围指南

引言&#xff1a;当数字藏品陷入“信任危机”2025年&#xff0c;数字藏品市场迎来关键转折点。一方面&#xff0c;全球市场规模突破千亿美元&#xff0c;中国用户规模超2亿&#xff1b;另一方面&#xff0c;行业乱象频发&#xff1a;某头部平台因二级市场炒作被立案调查&#x…

原理:XinServer 是如何实现开箱即用的后端服务的?

原理&#xff1a;XinServer 是如何实现开箱即用的后端服务的&#xff1f; 不知道你有没有过这种经历&#xff1a;产品经理或者客户拿着一个原型图过来&#xff0c;说“咱们这个App/小程序/管理后台&#xff0c;下个月能上线吗&#xff1f;”你一看&#xff0c;好家伙&#xff0…

音乐喷泉博途V14与MCGS7.7触摸屏程序资料包2:探索奇妙的喷泉世界

音乐喷泉博途v14和mcgs7.7触摸屏程序资料包2&#xff0c;带运行效果视频&#xff0c;流程图和io表最近在研究自动化控制项目时&#xff0c;发现了一款超有趣的资料包——音乐喷泉博途V14和MCGS7.7触摸屏程序资料包2 &#xff0c;还附带运行效果视频、流程图以及IO表&#xff0c…

Python---多线程相关内容

最近会更新很多内容,感兴趣的友友点个关注,支持一下博主吧! 一、线程基本内容 概述: 线程是CPU调度资源的最基本单位, 进程是CPU分配资源的基本单位. 进程 = 可执行程序, 文件. 即: *.exe = 进程, 微信, QQ都是进程. 线程 = 进程的执行路径, 执行单元. 微信这个进程, 可以…

【程序员必看】RAG技术天花板被打破!AutoRefine让大模型学会“思考式检索“,代码开源,小白也能上手!

背景 大语言模型的推理能力受限于训练数据的质量和覆盖范围&#xff0c;检索增强生成&#xff08;RAG&#xff09;技术应运而生&#xff1a;让模型在回答时调用外部知识库&#xff0c;弥补相关知识缺口。但现有RAG方法存在两个关键问题&#xff1a; 噪音干扰&#xff1a;检索…

黑客、骇客、白客、红客终极指南:四大角色工作全揭秘,收藏这篇就够了!

黑客 起源 “黑客”一词是英文Hacker的音译。这个词早在莎士比亚时代就已存在了&#xff0c;但是人们第一次真正理解它时&#xff0c;却是在计算机问世之后。根据《牛津英语词典》解释&#xff0c;“hack”一词最早的意思是劈砍&#xff0c;而这个词意很容易使人联想到计算机…

JavaScript作用域全解析:前端新人不再被变量“捉迷藏”搞晕(附实战

JavaScript作用域全解析&#xff1a;前端新人不再被变量“捉迷藏”搞晕&#xff08;附实战 JavaScript作用域全解析&#xff1a;前端新人不再被变量“捉迷藏”搞晕&#xff08;附实战技巧&#xff09;引言&#xff1a;变量到底藏哪儿了&#xff1f;JavaScript作用域初印象&…

吐血推荐8个AI论文平台,助你轻松搞定本科毕业论文!

吐血推荐8个AI论文平台&#xff0c;助你轻松搞定本科毕业论文&#xff01; AI 工具助力论文写作&#xff0c;轻松应对学术挑战 对于正在撰写本科毕业论文的同学们来说&#xff0c;时间紧、任务重是常态。从选题到开题&#xff0c;再到撰写初稿和反复修改&#xff0c;每一个环节…

震惊!14B小模型吊打72B大模型,MiA-RAG让AI从“盲人摸象“到“全局视野“

引言&#xff1a;RAG的困境 在2025年&#xff0c;RAG&#xff08;检索增强生成&#xff09;已经成为大模型应用的标配技术。 从视频理解到文档问答&#xff0c;从知识库检索到Agent系统&#xff0c;RAG无处不在。 但当我们把RAG用在真正复杂的长文本场景时&#xff0c;会发现…

网络安全从入门到进阶:快速掌握核心技术与防御体系

1 TCP/IP 模型基础 OSI参考模型 OSI(Open System Interconnect Reference Model)&#xff0c;开放式系统互联参考模型&#xff0c;它是由 国际标准化组织 ISO 提出的一个网络系统互连模型。 OSI 模型的设计目的是成为一个所有销售商都能实现的开放网络模型&#xff0c;来克服…

深度学习毕设项目推荐-基于python深度学习的手势识别数字

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

光伏逆变器并网Matlab/Simulink仿真模型探索

光伏逆变器并网matlab/simiulink仿真模型 有参考lun文和模型说明 利用MATLAB搭建光伏并网模型验证逆变控制策略的可行性。 对仿真结果进行优化&#xff0c;LCL 滤波器消除逆变时引起的谐波分量&#xff0c;使谐波畸变率THD低于5%。 实现控制响应既快速高效&#xff0c;又可以提…

6.面向对象初级

类与对象的概述1.类的定义&#xff1a;类是抽象的概念的&#xff0c;代表一类事物&#xff08;比如人类&#xff0c;猫类&#xff09;&#xff0c;本质是一种数据类型&#xff0c;类将这一类对象所共有的属性和行为进行定义&#xff08;比如猫都有名字&#xff0c;颜色&#xf…

Burp Suite插件 | AI连接本地工具、数据库或远程 Agent,辅助安全测试

工具介绍 BurpAgent 将大语言模型 (LLM) 和 MCP (Model Context Protocol) 引入 Burp Suite&#xff0c;使其能够连接本地工具、数据库或远程 Agent&#xff0c;辅助安全测试。工具功能 1. 流量分析 利用 GPT-4/DeepSeek 等模型对 HTTP 请求/响应进行分析。支持自定义 Prompt 模…

万字长文,全面解析“黑、骇、白、红”客:他们的技术与使命

黑客 起源 “黑客”一词是英文Hacker的音译。这个词早在莎士比亚时代就已存在了&#xff0c;但是人们第一次真正理解它时&#xff0c;却是在计算机问世之后。根据《牛津英语词典》解释&#xff0c;“hack”一词最早的意思是劈砍&#xff0c;而这个词意很容易使人联想到计算机…

强烈安利专科生必用TOP10 AI论文平台

强烈安利专科生必用TOP10 AI论文平台 专科生论文写作的“好帮手”怎么选&#xff1f; 随着AI技术在教育领域的不断渗透&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而面对市场上五花八门的平台&#xff0c;如何选择真正适合自己的成了难题。为此&#xff0…