首页
社区
课程
招聘
[旧帖] [求助]关于系统调用中ESI指针 0.00雪花
发表于: 2010-10-27 16:37 1188

[旧帖] [求助]关于系统调用中ESI指针 0.00雪花

2010-10-27 16:37
1188
各位。
学习系统调用的过程中

我在KiFastCallEntry处设了断点。

其后有一行代码

/* Get a pointer to the current thread */

move esi,[ebx+KPCR_CURRENT_THREAD]

我的理解是。这行代码使esi指向当前进程的KTHREAD结构吧?

————————————————————————————————————
kd> t
nt!KiFastCallEntry+0x39:
80883849 6a3b            push    3Bh
kd> t
nt!KiFastCallEntry+0x3b:
8088384b 8bb324010000    mov     esi,dword ptr [ebx+124h]

kd> t
nt!KiFastCallEntry+0x41:
80883851 ff33            push    dword ptr [ebx]
kd> r
eax=00000045 ebx=ffdff000 ecx=80042000 edx=00b4fda4 esi=81fd6220 edi=00000000
eip=80883851 esp=f68c4db4 ebp=00b4fde0 iopl=0         nv up di pl nz na po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000002
nt!KiFastCallEntry+0x41:
80883851 ff33            push    dword ptr [ebx]      ds:0023:ffdff000=f68c46b8

———————————————————————————————————————————

这是esi的值应该是本进程KTHREAD的地址。

kd> dd 81fd6220
81fd6220  006e0006 00000000 81fd6228 81fd6228
81fd6230  81fd6230 81fd6230 f68c5000 f68c2000
81fd6240  f68c4914 00000000 81fd6248 81fd6248
81fd6250  81fd6250 81fd6250 81fd9510 01000000
81fd6260  00000000 00000000 000002bc 01000a02
81fd6270  00000102 81fd62c8 0f060001 00000001
81fd6280  ffdffb00 81fac2b0 00000000 0000179a
81fd6290  00000000 7ffdb000 00a00008 00000001
kd> u 81fd6220
81fd6220 06              push    es
81fd6221 006e00          add     byte ptr [esi],ch
81fd6224 0000            add     byte ptr [eax],al
81fd6226 0000            add     byte ptr [eax],al
81fd6228 2862fd          sub     byte ptr [edx-3],ah
81fd622b 812862fd8130    sub     dword ptr [eax],3081FD62h
81fd6231 62              ???
81fd6232 fd              std

我不确定我说的是不是对的。而且。我也不确定任何判断一块内核存的是数据还是代码。。。

新手。望解答

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 46
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
第一次发贴就没人理啊!!!
2010-10-29 16:36
0
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
友情帮顶,定时刷新
2010-10-29 16:44
0
雪    币: 60
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顶起
2010-10-29 16:52
0
雪    币: 4560
活跃值: (1002)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
用WinDebug+调试符号,自己看呗
2010-10-29 16:57
0
雪    币: 46
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我用的就是WinDebug+调试符号

我不确定的是。当前的ESI指向的是不是KTHREAD

因为我用u命令看ESI的地址时。显示出了指令
2010-10-29 17:00
0
雪    币: 189
活跃值: (889)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
顶起.
2010-10-29 18:06
0
雪    币: 60
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
帮顶
2010-10-30 07:47
0
游客
登录 | 注册 方可回帖
返回
//