KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
阅读:2060回复:9

靖问如何取得Eprocess Block的指针?

楼主#
更多 发布于:2001-09-12 12:05
Win2000跟Win9x是否可用同一方法 ?
lu0
lu0
论坛版主
论坛版主
  • 注册日期2001-06-10
  • 最后登录2016-04-05
  • 粉丝2
  • 关注0
  • 积分-6311分
  • 威望21111点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-12 17:42
不能同样引用. EPROCESS是个KERNEL MODE的数据结构. 需要写成DRIVER才能访问.
Regards, Lu Lin Webmaster of Inside Programming http://www.lu0s1.com
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
板凳#
发布于:2001-09-13 11:33
那么用什么方法取得指针?
有没有涵数可用 !
BSOD
驱动牛犊
驱动牛犊
  • 注册日期2001-09-28
  • 最后登录2004-09-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-09-29 00:36
You need a KMD driver do 3 things.

1. Call IoGetCurrentProcess which returns the current *EPROCESS, this pointer reference the KM memory which is not valid to UM.

2. call ZwMapViewOfSection to map the EPROCESS struct to the user mode, you will get a section pointer.

3. in your device io control, return the section pointer to you application.

in you application, typecast the section pointer to a EPROCESS pointer and manipulate it as a memory block.

make sure you're in the same process context when doing this.

Good luck
COOL NDIS
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
地下室#
发布于:2001-10-01 01:37
Is there a way to get those pointer under Win9x/Win2K in
arbitrary process context?
BSOD
驱动牛犊
驱动牛犊
  • 注册日期2001-09-28
  • 最后登录2004-09-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-10-01 21:46
>> in
arbitrary process context?

for NT/2000/XP
once you get a eprocess struct in any context even in the  DPC, I think you will be able to traverse all system processes by looking up from the "process LIST_ENTRY" field in the EPROCESS struct. It's a double linked-list. I forgot the offset of this field though.

for consumer Windows(9x,me), I know nothing about them but the WDM.
COOL NDIS
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
6楼#
发布于:2001-10-02 00:16
I got the whole picture now,thanks for the fast reply!
Your help is really priceless! :-)
and thanks lu0 for this great froum !!
masmasm
驱动牛犊
驱动牛犊
  • 注册日期2001-05-09
  • 最后登录2018-04-15
  • 粉丝0
  • 关注0
  • 积分-16分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-10-02 17:50
我能用BSOD之方法映射IDT 到USER VM 吗?
在单CPU 计算机中有多个IDT 吗?
怎样把自己的中断例程搬入KM 呢?


KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
8楼#
发布于:2001-10-23 07:14
I find a site with a tool "IDT Look" and the source are as following:

http://www.wischrop-net.de/nt/main_idt.htm
http://www.wischrop-net.de/download/diplom/asource.zip


Hope this help !!!
lu0
lu0
论坛版主
论坛版主
  • 注册日期2001-06-10
  • 最后登录2016-04-05
  • 粉丝2
  • 关注0
  • 积分-6311分
  • 威望21111点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-10-23 14:14
98下IDT的奥秘我主页上有.
NT下IDT可以直接搞定. 在多CPU情况下. 也可以用我主页上讲的东西搞定.
98/NT在2篇文章理. 自己找一下.
Regards, Lu Lin Webmaster of Inside Programming http://www.lu0s1.com
游客

返回顶部