WinDbg "invalid access to memory location" - InitializeProcThreadAttributeList



我对WinDbg比较陌生,所以我希望这只是我错过的一些明显的东西。我有一个。net程序集,其中包含函数调用InitializeProcThreadAttributeList, UpdateProcThreadAttribute和DeleteProcThreadAttributeList,使用P/Invoke定义。所有这三个函数都是从"kernel32.dll"导入的。图书馆。我的目标是跟踪这些函数,以了解正在使用的ntdll sys调用。

我试图用这个命令设置一个断点:

bp KERNEL32!InitializeProcThreadAttributeList

,但是得到这个错误:

Couldn't resolve error at 'KERNEL32!InitializeProcThreadAttributeList'

接下来,我使用以下命令搜索这个函数的任何迹象:

x kernel32!*procthread*

我得到了这样的回复:

00007ffd`c7598588 KERNEL32!_imp_InitializeProcThreadAttributeList = <no type information>

然后我尝试在这个存根上设置断点?函数如下:

bp kernel32!_imp_InitializeProcThreadAttributeList

虽然它说已经定义了断点,但当我继续执行时,它出错了:

Unable to insert breakpoint 0 at 00007ffd`c7598588, Win32 error 0n998
"Invalid access to memory location."

我也尝试使用"但是"设置断点,但是产生同样的错误。

有人知道在这种情况下如何设置断点吗?提前感谢!

kernel32中的大部分函数已经在kernelbase.dll中实现了而kernel32只包含一个

标志是IMP表示从

导入
_imp_InitializeProcThreadAttributeList

尝试设置bp内核基础!InitializeProcThreadAttributeList

0:000> x /v kernel32!InitializeProcThreadAttributeList
pub func   761f4fc1             0 kernel32!InitializeProcThreadAttributeList (<no parameter info>)
0:000> u kernel32!InitializeProcThreadAttributeList l1
kernel32!InitializeProcThreadAttributeList:
761f4fc1 ff25c0181476    jmp dword ptr [kernel32!_imp__InitializeProcThreadAttributeList (761418c0)]
0:000> ? poi(kernel32!_imp__InitializeProcThreadAttributeList)
Evaluate expression: 1978493618 = 75ed6ab2
0:000> ln poi(kernel32!_imp__InitializeProcThreadAttributeList)
Exact matches:
KERNELBASE!InitializeProcThreadAttributeList (<no parameter info>)

0:000> bp poi(kernel32!_imp__InitializeProcThreadAttributeList)
0:000> bl
0 e 75ed6ab2     0001 (0001)  0:**** KERNELBASE!InitializeProcThreadAttributeList

相关内容

  • 没有找到相关文章

最新更新