|
|
|
[求助]64位fastcall 栈回溯怎么实现
面试遇到了这个问题,看了下wrk中的RtlWalkFrameChain 64位版本。基本原理就是,x64函数开头会有分配栈空间的指令,结尾有回收栈空间的指令,RtlWalkFrameChain 内部调用 RtlVirtualUnwind 去搜索栈空间相关的指令,可以得到当前函数的栈大小,然后通过 rsp+当前函数栈大小回推返回地址和父函数的rsp,最终完成栈回溯。具体细节参考 RtlWalkFrameChain 。
最后于 2020-9-18 11:01
被Private丶编辑
,原因:
|
|
[求助]Windows 内核层里获取进程的原始文件名
原始文件名不是所有exe都有,在vs中添加一个 VERSION 类型的资源才有,如下图。所以,如果要获取一个PE文件的原始文件名,要解析资源表。
最后于 2020-5-28 12:15
被Private丶编辑
,原因:
|
|
[讨论] 微软的符号服务器是不是宕机了?
我这边下载不下来啊 |
|
[求助] Windows 内核 关于 IRQL DISPATCH_LEVEL 的疑问
fengyunabc APIC了解一下?大佬,可否指条明路。稍微细说一下就行。谢谢大佬。 这个APIC和windows的 IRQL 有什么联系。
最后于 2019-10-30 17:04
被Private丶编辑
,原因:
|
|
[求助] Windows 内核 关于 IRQL DISPATCH_LEVEL 的疑问
咖啡_741298 不是必蓝,但容易出鬼。 而且高IRQL线程一旦KeWaitForSingleObjec 后,系统调度可能失常,导致CPU莫名其妙的高。 & ...你说的 可以把DISPATCH_LEVEL中运行的代码理解为完整性代码(类似于原子操作),这一点比较好理解,线程运行的时候会有时钟中断,如果当前线程时间片到期,会发送一个 DISPATCH_LEVEL 的软中断,在这个中断处理函数中进行线程切换,但是 DISPATCH_LEVEL 级别的线程不会响应这个中断,所以就不会被动切换到其他线程,不知道我这么理解对不对。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值