|
|
|
|
|
|
|
Windows内核
帖子发起人: kkindof 发起时间: 2013-07-13 17:09 下午 回复: 7
|
帖子排序:
|
|
|
|
2013-07-13, 17:09 下午
|
kkindof
注册: 2011-11-10
发 贴: 15
|
|
|
有点郁闷,发现这个版本最后发帖子的是我,还是11年的事了。
不废话了,最近工作项目有个问题,后来调试后,问题解决了,但思考后有个点还没弄明白
在wow64进程在插入一个APC,APC触发时最早是在ntdll64!kiapcdispatch接收到的,在这个函数里面会判断APC的特征,如果发现是32bit的进程的APC, 则会调用wow64apcwapper切到32模式,然后走ntdll32!apcdispatch的流程。
后来觉得异常分发也可能是这么干的,但调试了半天,还没找到,不知道wow64环境下是怎么整的,windows internals只是简单的描述了下,没给细节。
不知道有没人研究过这块
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2013-07-14, 22:42 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2013-07-16, 17:39 下午
|
kkindof
注册: 2011-11-10
发 贴: 15
|
|
|
这里是我对我遇到问题的一个分析结果 http://www.cnblogs.com/kkindof/p/3193443.html 不知道张老师有没空指点下, 其中里面有2 点希望得到肯定回答:
1.我对这条指令 0033:00000000`0046ba24
ff257c335600 jmp qword ptr
[BAVSvc+0x16337c (00000000`0056337c)] ds:002b:00000000`009ceda6=???????????????? 执行出错,分析的结果是否正确,即CPU是否根据这个cs.L为作区分
2。wow64!Wow64pLongJmp+0x682函数是否为SEH filter 我没比较细的单步是由于我没64位真机,在虚拟机中双机内核调试,单步不好调,比较容易跑飞了
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2013-07-17, 19:19 下午
|
kkindof
注册: 2011-11-10
发 贴: 15
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2013-07-17, 20:35 下午
|
Thomson
注册: 2008-07-03
发 贴: 211
|
|
|
我是觉得同样的instruction encoding 在x64和x86解释会不一样。x64多了RIP-relative addressing, FF25中的modR/M在x64下解释成(RIP+disp), 在x86下解释成(0+disp).
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2013-07-17, 23:57 下午
|
Thomson
注册: 2008-07-03
发 贴: 211
|
|
|
这个应该就是你说的CS.L来区分的吧。64位和32位代码在wow64中执行,用了不同的CS. 等张老师来确认吧。我也可以去看看代码:)
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 内核探秘 » Windows内核 » Re: wow64 异常分发
|
|
|
|
|
|