hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
阅读:2033回复:8

分享:在驱动中弹出对话框(给初学者)

楼主#
更多 发布于:2008-05-06 14:53
从驱网上搜到在驱动中弹出对话框的方法,提供于此,给初学者参考。(感谢killvxk)。

NTSTATUS UtilsZwRaiseHardError(ULONG ZwIndex,...){

  NTSTATUS   status;

  _asm{
    mov   eax,[ZwIndex]
    Lea   edx,[ebp+0x0c]
    Int 0x2e
    mov   [status],eax
  }

  return status;
}
void ShowMessage(PWSTR Caption, PWSTR Msg)
{

    ULONG pUnicodeArguments[] = {0, 0, 0};
    ULONG   ReturnValue;
    UNICODE_STRING uniText;
    UNICODE_STRING uniCaption;
    RtlInitUnicodeString(&uniText, Caption);
    RtlInitUnicodeString(&uniCaption, Msg);
    pUnicodeArguments[0] = (ULONG)&uniCaption;
    pUnicodeArguments[1] = (ULONG)&uniText;
    UtilsZwRaiseHardError(0xb6,0x50000018, 3, 3, pUnicodeArguments, 1, &ReturnValue);
}

最新喜欢:

g20062558g20062... snoxsnox
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-05-06 14:56
希望对大家有所帮助
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-05-07 07:50
不同的OS平台的软中断号,有些是不一样的。
一切都是时间问题!
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
地板#
发布于:2008-05-07 08:00
这段代码在XP上执行是有效果的,
winnt是0x85
WIN2K 是 0xa0
WINXP是0xb6
WIN2003是0xbe
还有其他方法实现,
使用APC技术启动一个独立的进程。功能更强,可以做Rookit
或者直接与自己的AP通讯,让AP弹对话框。这个是比较标准的用法。
一切都是时间问题!
microbe
驱动小牛
驱动小牛
  • 注册日期2007-12-10
  • 最后登录2011-01-17
  • 粉丝1
  • 关注0
  • 积分914分
  • 威望420点
  • 贡献值1点
  • 好评度88点
  • 原创分0分
  • 专家分1分
地下室#
发布于:2008-05-07 08:16
呃。。。夹了汇编的代码,暂时还看不懂。。。
liwashington
驱动小牛
驱动小牛
  • 注册日期2004-04-30
  • 最后登录2010-10-21
  • 粉丝0
  • 关注0
  • 积分-11分
  • 威望98点
  • 贡献值1点
  • 好评度12点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-05-07 10:19
不错,有趣的东西。只是能不能讲下那一堆参数都是什么意思,这些值是如何得出来的?
UtilsZwRaiseHardError(0xb6,0x50000018, 3, 3, pUnicodeArguments, 1, &ReturnValue);
我只想有个好老婆,每天有几顿好饭吃……
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2008-05-15 14:15
NTSYSAPI
NTSTATUS
NTAPI
NtRaiseHardError(

  IN NTSTATUS             ErrorStatus,
  IN ULONG                NumberOfParameters,
  IN PUNICODE_STRING      UnicodeStringParameterMask OPTIONAL,
  IN PVOID                *Parameters,
  IN HARDERROR_RESPONSE_OPTION ResponseOption,
  OUT PHARDERROR_RESPONSE Response );






This function sends HARDERROR_MSG LPC message to listener (typically CSRSS.EXE). See NtSetDefaultHardErrorPort for more information.

ErrorStatus
    Error code.
NumberOfParameters
    Number of optional parameters in Parameters array.
UnicodeStringParameterMask
    Optional string parameter (can be only one per error code).
*Parameters
    Array of DWORD parameters for use in error message string.
ResponseOption
    See HARDERROR_RESPONSE_OPTION for possible values description.
Response
    Pointer to HARDERROR_RESPONSE enumeration.



--------------------------------------------------------------------------------

NtRaiseHardError is easy way to display message in GUI without loading Win32 API libraries.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bluetiger
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2010-09-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望100点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-06-13 15:57
谢谢,支持一下。
hj212001
驱动牛犊
驱动牛犊
  • 注册日期2008-07-11
  • 最后登录2010-08-04
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望86点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-07-11 15:41
青蛙下河喽!
游客

返回顶部