netconfig1
驱动牛犊
驱动牛犊
  • 注册日期2002-10-02
  • 最后登录2002-10-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2825回复:5

Hook ZwCreateProcess的问题,急死了

楼主#
更多 发布于:2002-10-02 17:25
我在2000下,已经成功拦截到了ZwCreateProcess
但是我打印出文件名却蓝屏,为什么啊?

在xp下,我也成功的拦截到了ZwCreateProcessEx,并且取出了文件名。但方法有点区别

NTSTATUS HookZwCreateProcess(OUT PHANDLE ProcessHandle,
                      IN ACCESS_MASK DesiredAccess,
                      IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
                      IN HANDLE ParentProcess,
                      IN BOOLEAN InheritObjectTable,
                      IN HANDLE SectionHandle OPTIONAL,
                      IN HANDLE DebugPort OPTIONAL,
                      IN HANDLE ExceptionPort OPTIONAL
)
{
NTSTATUS ret = STATUS_TIMEOUT ;
     ANSI_STRING ansiFileName;
RtlUnicodeStringToAnsiString (&ansiFileName, ObjectAttributes->ObjectName , TRUE);
RtlUpperString(&ansiFileName,&ansiFileName);
DbgPrint (\"Create Process %s\\n\", ansiFileName.Buffer + 4);
.....
...
....
}

最新喜欢:

ljmmaryljmmar...
linfeng1216
驱动小牛
驱动小牛
  • 注册日期2004-03-10
  • 最后登录2008-12-31
  • 粉丝0
  • 关注0
  • 积分818分
  • 威望89点
  • 贡献值0点
  • 好评度74点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-24 09:58
听说可用 ZwCreateSection 获得,还没试过。
这件事很难
linfeng1216
驱动小牛
驱动小牛
  • 注册日期2004-03-10
  • 最后登录2008-12-31
  • 粉丝0
  • 关注0
  • 积分818分
  • 威望89点
  • 贡献值0点
  • 好评度74点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-21 13:57
名字可以通过 NtCreateFile 得到,但这样在其它很多情况下都会 Hook 到。
这件事很难
gxtue
驱动牛犊
驱动牛犊
  • 注册日期2004-03-25
  • 最后登录2004-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-08 23:45
不好意思,想请问一下
你最后有成功的找到该process的name吗..??
我希望在一个程序被执行的时候可以hook到
然后用 它的名字来比对是不是我要的那个程序被执行了
如  notepad.exe 这样来看.
谢谢!!
Axi
Axi
驱动牛犊
驱动牛犊
  • 注册日期2002-02-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-19 11:44
呵呵!蓝屏很有可能是因为你的以下部分出问题了
RtlUnicodeStringToAnsiString (&ansiFileName, ObjectAttributes->ObjectName , TRUE);
RtlUpperString(&ansiFileName,&ansiFileName);
DbgPrint (\"Create Process %s\\n\", ansiFileName.Buffer + 4);
 ObjectAttributes->ObjectName 你有没有考虑过为NULL的情况啊?

呵呵。是ObjectAttributes=NULL;
举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-13 00:02
呵呵!蓝屏很有可能是因为你的以下部分出问题了
RtlUnicodeStringToAnsiString (&ansiFileName, ObjectAttributes->ObjectName , TRUE);
RtlUpperString(&ansiFileName,&ansiFileName);
DbgPrint (\"Create Process %s\\n\", ansiFileName.Buffer + 4);
 ObjectAttributes->ObjectName 你有没有考虑过为NULL的情况啊?
游客

返回顶部