首页
社区
课程
招聘
[求助]蓝了一天,帮帮我吧,百度和谷歌看了N页。。。
发表于: 2011-10-25 22:11 8631

[求助]蓝了一天,帮帮我吧,百度和谷歌看了N页。。。

2011-10-25 22:11
8631
关于在 RING0 中调用 KeAttachProcess

代码如下

==========================================================
NTSYSAPI     VOID NTAPI KeAttachProcess          ( ULONG * );

ULONG systemProcess           = 0;

ULONG targetProcess           = 0;

====

systemProcess = ( ULONG ) PsGetCurrentProcess ();

        targetProcess = systemProcess;

        do
        {
                targetProcess = * ( ULONG * ) ( targetProcess + 0x88 );

                targetProcess -= 0x88;

                if ( ( ULONG * ) ( targetProcess + 0xC4 ) != NULL )
                {
                        if ( _stricmp ( ( char * ) ( targetProcess + 0x174 ), "notepad.exe" ) == 0 )
                        {
                                KdPrint ( ( "\n              ProcessName = notepad.exe\n" ) );

                                //

                                __asm INT 3;

                                KeAttachProcess ( & targetProcess );

                                __asm
                                {
                                        MOV EDI, 0x036A53C4;

                                        MOV WORD PTR [ EDI ], 0x90E9;
                                }

                                KeDetachProcess ();
                        }
                }
        }
        while ( targetProcess != systemProcess );

=============================================

在 KeAttachProcess ( & targetProcess ); 处不断蓝屏IRQL_NOT_LESS_OR_EQUAL

帮帮我吧

谢谢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
2
__asm INT 3;
2011-10-25 23:39
0
雪    币: 305
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在使用Windbg调试的时候,手动添加如下的代码:
java代码
#if DBG  
  _asm int 3  
#endif  

执行到它的时候就会停下来。
但是这样的代码如果不是调试状态执行就会直接蓝屏。
所以如果你不在调试状态下,请注释掉这三句。否则出现蓝屏:
0x008e (0x008003....)
而:0x80000003: STATUS_BREAKPOINT indicates that a breakpoint or ASSERT was encountered when no kernel debugger was attached to the system.

转自:http://yexin218.iteye.com/blog/546441
2011-10-26 08:47
0
雪    币: 1886
活跃值: (211)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
Int 3我调式用的
2011-10-26 11:49
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
5
确保0x036A53C4这个地址有效, 而且是可写属性。 只读的肯定蓝
2011-10-26 12:25
0
雪    币: 1886
活跃值: (211)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
还没到那步

在 KeAttachProcess ( & targetProcess ); 直接就蓝了。。。
2011-10-26 18:27
0
雪    币: 128
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
表示内核不熟悉,这个api也没用过,会不会是……
KeAttachProcess ( & targetProcess );
2011-10-26 19:58
0
雪    币: 1886
活跃值: (211)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=cherryEx;1013650]表示内核不熟悉,这个api也没用过,会不会是……
KeAttachProcess ( & targetProcess );[/QUOTE]

我也是初学者 第一次使用这个API 蓝了N次后 没办法 来求助
2011-10-26 21:12
0
雪    币: 1886
活跃值: (211)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
或者 谁能提供下 不使用 epocress(比如使用ULONG) 调用 KeAttachProcess 的实例?谢谢
2011-10-26 21:15
0
雪    币: 227
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10
试试KeAttachProcess ( targetProcess );
另外硬编码不太好..
2011-10-27 13:16
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
如果只是运行到KeAttachProcess蓝屏的话,应该是参数没有强制转换的问题,楼主试试这个

KeAttachProcess(  (PEPROCESS) targetProcess)
2011-10-31 01:39
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
可恨的硬编码...
2011-11-1 15:37
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
13
不发源码可以,至少给一个完整函数吧,不给完整函数可以,至少给一个dump吧,

就单凭这点信息要是能找到错误,那此人也算神级人物了。
2011-11-2 01:19
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
回复:“或者 谁能提供下 不使用 epocress(比如使用ULONG) 调用 KeAttachProcess 的实例?谢谢 ”

google 搜索 KeAttachProcess  site:www.codeproject.com
一个国外网站 不过注册了就能下载源代码和EXE  有代码 能运行能调试 我向应该能够解决你的问题

另外你提问 最好把蓝屏原因和DUMP分析 或者源代码 起码给出来
不然一没诚意 二也不好分析
2011-11-2 09:00
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
如果确定是   KeAttachProcess    这一步蓝了  肯定是你的参数传递错误了  

其实只要值是对的传入的类型无关紧要  它们只是C编译器根据声明函数时参数类型的厉行检查    在汇编层就没有这么多花样
2011-11-2 10:49
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
16
自己调一下就知道了 问这么多 谁知道你是啥问题啊
2011-11-3 23:53
0
游客
登录 | 注册 方可回帖
返回
//