首页
社区
课程
招聘
[求助]求助,去掉DbgBreakPoint函数会导致蓝屏报错
2021-6-29 22:30 5192

[求助]求助,去掉DbgBreakPoint函数会导致蓝屏报错

2021-6-29 22:30
5192
收藏
点赞1
打赏
分享
最新回复 (17)
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 10:49
2
0
错误原因是ObReferenceObjectByHandle导致的,但是还没有发现原因
雪    币: 433
活跃值: (1805)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
萌克力 2021-6-30 11:24
3
0
双机调下,看下pEprocess的值是个什么状态
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 13:35
4
0
萌克力 双机调下,看下pEprocess的值是个什么状态

这是我在调试状态下,获取的内核对象信息


kd> dt _EPROCESS 0x86ba6030

mssmbios!_EPROCESS

   +0x000 Pcb              : _KPROCESS

   +0x098 ProcessLock      : _EX_PUSH_LOCK

   +0x0a0 CreateTime       : _LARGE_INTEGER 0x1d76cfd`0af4f532

   +0x0a8 ExitTime         : _LARGE_INTEGER 0x0

   +0x0b0 RundownProtect   : _EX_RUNDOWN_REF

   +0x0b4 UniqueProcessId  : 0x00000b04 Void

   +0x0b8 ActiveProcessLinks : _LIST_ENTRY [ 0x885b5270 - 0x885aa3b0 ]

   +0x0c0 ProcessQuotaUsage : [2] 0x2b48

   +0x0c8 ProcessQuotaPeak : [2] 0x2e7c

   +0x0d0 CommitCharge     : 0x997

   +0x0d4 QuotaBlock       : 0x87e9f3c0 _EPROCESS_QUOTA_BLOCK

   +0x0d8 CpuQuotaBlock    : (null) 

   +0x0dc PeakVirtualSize  : 0xc9f3000

   +0x0e0 VirtualSize      : 0xc35b000

   +0x0e4 SessionProcessLinks : _LIST_ENTRY [ 0x88602e24 - 0x88564604 ]

   +0x0ec DebugPort        : (null) 

   +0x0f0 ExceptionPortData : 0x87e73048 Void

   +0x0f0 ExceptionPortValue : 0x87e73048

   +0x0f0 ExceptionPortState : 0y000

   +0x0f4 ObjectTable      : 0x98dd30a8 _HANDLE_TABLE

   +0x0f8 Token            : _EX_FAST_REF

   +0x0fc WorkingSetPage   : 0x20541

   +0x100 AddressCreationLock : _EX_PUSH_LOCK

   +0x104 RotateInProgress : (null) 

   +0x108 ForkInProgress   : (null) 

   +0x10c HardwareTrigger  : 0

   +0x110 PhysicalVadRoot  : (null) 

   +0x114 CloneRoot        : (null) 

   +0x118 NumberOfPrivatePages : 0x726

   +0x11c NumberOfLockedPages : 0

   +0x120 Win32Process     : 0xfe706008 Void

   +0x124 Job              : (null) 

   +0x128 SectionObject    : 0x9bf4e380 Void

   +0x12c SectionBaseAddress : 0x013a0000 Void

   +0x130 Cookie           : 0xebbe17e1

   +0x134 Spare8           : 0

   +0x138 WorkingSetWatch  : (null) 

   +0x13c Win32WindowStation : 0x0000002c Void

   +0x140 InheritedFromUniqueProcessId : 0x000005a0 Void

   +0x144 LdtInformation   : (null) 

   +0x148 VdmObjects       : (null) 

   +0x14c ConsoleHostProcess : 0

   +0x150 DeviceMap        : 0x92267a38 Void

   +0x154 EtwDataSource    : 0x88027c68 Void

   +0x158 FreeTebHint      : 0x7ffd9000 Void

   +0x160 PageDirectoryPte : _HARDWARE_PTE_X86

   +0x160 Filler           : 0

   +0x168 Session          : 0x9184a000 Void

   +0x16c ImageFileName    : [15]  "A???"

   +0x17b PriorityClass    : 0x2 ''

   +0x17c JobLinks         : _LIST_ENTRY [ 0x0 - 0x0 ]

   +0x184 LockedPagesList  : (null) 

   +0x188 ThreadListHead   : _LIST_ENTRY [ 0x86ba6768 - 0x882456b0 ]

   +0x190 SecurityPort     : (null) 

   +0x194 PaeTop           : 0x875bd5e0 Void

   +0x198 ActiveThreads    : 0xa

   +0x19c ImagePathHash    : 0x37e44fb4

   +0x1a0 DefaultHardErrorProcessing : 1

   +0x1a4 LastThreadExitStatus : 0n0

   +0x1a8 Peb              : 0x7ffde000 _PEB

   +0x1ac PrefetchTrace    : _EX_FAST_REF

   +0x1b0 ReadOperationCount : _LARGE_INTEGER 0xf9

   +0x1b8 WriteOperationCount : _LARGE_INTEGER 0x60d

   +0x1c0 OtherOperationCount : _LARGE_INTEGER 0x385

   +0x1c8 ReadTransferCount : _LARGE_INTEGER 0x3407fa

   +0x1d0 WriteTransferCount : _LARGE_INTEGER 0xc29a

   +0x1d8 OtherTransferCount : _LARGE_INTEGER 0x1f62

   +0x1e0 CommitChargeLimit : 0

   +0x1e4 CommitChargePeak : 0x99c

   +0x1e8 AweInfo          : (null) 

   +0x1ec SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO

   +0x1f0 Vm               : _MMSUPPORT

   +0x25c MmProcessLinks   : _LIST_ENTRY [ 0x885b5414 - 0x885aa554 ]

   +0x264 HighestUserAddress : 0x7fff0000 Void

   +0x268 ModifiedPageCount : 0xe

   +0x26c Flags2           : 0xd000

   +0x26c JobNotReallyActive : 0y0

   +0x26c AccountingFolded : 0y0

   +0x26c NewProcessReported : 0y0

   +0x26c ExitProcessReported : 0y0

   +0x26c ReportCommitChanges : 0y0

   +0x26c LastReportMemory : 0y0

   +0x26c ReportPhysicalPageChanges : 0y0

   +0x26c HandleTableRundown : 0y0

   +0x26c NeedsHandleRundown : 0y0

   +0x26c RefTraceEnabled  : 0y0

   +0x26c NumaAware        : 0y0

   +0x26c ProtectedProcess : 0y0

   +0x26c DefaultPagePriority : 0y101

   +0x26c PrimaryTokenFrozen : 0y1

   +0x26c ProcessVerifierTarget : 0y0

   +0x26c StackRandomizationDisabled : 0y0

   +0x26c AffinityPermanent : 0y0

   +0x26c AffinityUpdateEnable : 0y0

   +0x26c PropagateNode    : 0y0

   +0x26c ExplicitAffinity : 0y0

   +0x270 Flags            : 0x144d0801

   +0x270 CreateReported   : 0y1

   +0x270 NoDebugInherit   : 0y0

   +0x270 ProcessExiting   : 0y0

   +0x270 ProcessDelete    : 0y0

   +0x270 Wow64SplitPages  : 0y0

   +0x270 VmDeleted        : 0y0

   +0x270 OutswapEnabled   : 0y0

   +0x270 Outswapped       : 0y0

   +0x270 ForkFailed       : 0y0

   +0x270 Wow64VaSpace4Gb  : 0y0

   +0x270 AddressSpaceInitialized : 0y10

   +0x270 SetTimerResolution : 0y0

   +0x270 BreakOnTermination : 0y0

   +0x270 DeprioritizeViews : 0y0

   +0x270 WriteWatch       : 0y0

   +0x270 ProcessInSession : 0y1

   +0x270 OverrideAddressSpace : 0y0

   +0x270 HasAddressSpace  : 0y1

   +0x270 LaunchPrefetched : 0y1

   +0x270 InjectInpageErrors : 0y0

   +0x270 VmTopDown        : 0y0

   +0x270 ImageNotifyDone  : 0y1

   +0x270 PdeUpdateNeeded  : 0y0

   +0x270 VdmAllowed       : 0y0

   +0x270 CrossSessionCreate : 0y0

   +0x270 ProcessInserted  : 0y1

   +0x270 DefaultIoPriority : 0y010

   +0x270 ProcessSelfDelete : 0y0

   +0x270 SetTimerResolutionLink : 0y0

   +0x274 ExitStatus       : 0n259

   +0x278 VadRoot          : _MM_AVL_TABLE

   +0x298 AlpcContext      : _ALPC_PROCESS_CONTEXT

   +0x2a8 TimerResolutionLink : _LIST_ENTRY [ 0x0 - 0x0 ]

   +0x2b0 RequestedTimerResolution : 0

   +0x2b4 ActiveThreadsHighWatermark : 0xa

   +0x2b8 SmallestTimerResolution : 0

   +0x2bc TimerResolutionStackRecord : (null) 

雪    币: 5570
活跃值: (5104)
能力值: ( LV6,RANK:92 )
在线值:
发帖
回帖
粉丝
0xC5 1 2021-6-30 16:20
5
0
某个指针类型的参数填错了,自己看吧
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 16:32
6
0
0xC5 某个指针类型的参数填错了,自己看吧
可以告知一下吗,这个函数每个参数都改了一遍了,还是不行
雪    币: 2251
活跃值: (2148)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
LexSafe 2021-6-30 16:34
7
0
带着DbgBreakPoint就不蓝屏了吗
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 16:35
8
0
LexSafe 带着DbgBreakPoint就不蓝屏了吗
对的,所以说很奇怪
雪    币: 6977
活跃值: (1774)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
TopC 2021-6-30 17:02
9
0

        Status = ObReferenceObjectByHandle (processHandle,
                                            PROCESS_QUERY_INFORMATION,
                                            *PsProcessType,
                                            KernelMode,
                                            &pEprocess,
                                            NULL);

应该是这个写法,不知道你这个processhandle哪来的,dump分析截图不全

最后于 2021-6-30 17:06 被TopC编辑 ,原因:
雪    币: 5570
活跃值: (5104)
能力值: ( LV6,RANK:92 )
在线值:
发帖
回帖
粉丝
0xC5 1 2021-6-30 17:02
10
0
AshCrimson 可以告知一下吗,这个函数每个参数都改了一遍了,还是不行[em_5]
首先,你只是定义了一个指向eprocess的指针,没有分配内存空间让函数写入获取信息,其次函数要求填的是指向对象的指针,你参数填了个二级指针
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 17:25
11
0
0xC5 首先,你只是定义了一个指向eprocess的指针,没有分配内存空间让函数写入获取信息,其次函数要求填的是指向对象的指针,你参数填了个二级指针

不是这个原因还是,蓝屏,我看了下我hook的函数的源码,它这里也是有一个中断的

雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 17:27
12
0
是不是因为IRQL的原因啊
雪    币: 6977
活跃值: (1774)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
TopC 2021-6-30 17:27
13
0
0xC5 首先,你只是定义了一个指向eprocess的指针,没有分配内存空间让函数写入获取信息,其次函数要求填的是指向对象的指针,你参数填了个二级指针
这个函数本来就是填个二级指针带回数据
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 17:32
14
0

这个提示要不要修改下IRQL

雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-6-30 20:44
15
0
TopC         Status =&am ...
processHandle是从NtDebugActiveProcess拿到的,我觉得是因为IRQL有点问题,我即使照着源码写,如果不处于调试状态,依然会出错,好烦
雪    币: 6977
活跃值: (1774)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
TopC 2021-7-1 13:32
16
0
问题解决了吗?我在网上找到这么一句:
Callers of ObReferenceObjectByHandle must be running at IRQL = PASSIVE_LEVEL.

崩溃的时候 !pcr 看看irql是什么?
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-7-1 17:29
17
0
TopC 问题解决了吗?我在网上找到这么一句: Callers of ObReferenceObjectByHandle must be running at IRQL = PASSIVE_LEVEL. ...
还没有,出错的时候IRQL=2
雪    币: 2954
活跃值: (3350)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
AshCrimson 2021-7-1 17:29
18
0
那我降低一下IRQL等级,看看
游客
登录 | 注册 方可回帖
返回