relax
驱动牛犊
驱动牛犊
  • 注册日期2001-06-19
  • 最后登录2012-09-06
  • 粉丝0
  • 关注0
  • 积分88分
  • 威望69点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:2464回复:14

如何驱动程序中拦截WIN2000的创建进程请求?

楼主#
更多 发布于:2003-09-29 14:38
我在拦截内核API时找不到ZwCreateProcess函数,不知道如何拦截这个API!

最新喜欢:

cyliucyliu
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-29 16:22
使用PsSetCreateProcessNotifyRoutine注册回调函数即可!
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
relax
驱动牛犊
驱动牛犊
  • 注册日期2001-06-19
  • 最后登录2012-09-06
  • 粉丝0
  • 关注0
  • 积分88分
  • 威望69点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-09-29 17:12
谢谢!已经给分了!
再问一句,能知道进程名吗?
northpointstar
驱动牛犊
驱动牛犊
  • 注册日期2003-01-07
  • 最后登录2007-01-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-03 22:59
hook int2e
freewindows
relax
驱动牛犊
驱动牛犊
  • 注册日期2001-06-19
  • 最后登录2012-09-06
  • 粉丝0
  • 关注0
  • 积分88分
  • 威望69点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-05 11:40
我知道HOOK INT 2E,个人觉得会比拦截内核API更影响系统性能
而且不知道怎样判断是创建进程请求!
else
驱动小牛
驱动小牛
  • 注册日期2002-10-21
  • 最后登录2004-06-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-06 12:08
注册PsSetCreateProcessNotifyRoutine只能得到进程创建和销毁的通知,不能拦截进程。并且这时只能得到进程的文件名,没有路径,因为系统这时候还没有把参数信息填进进程空间,得想其他得办法才可以得到。

在Ntoskrnl里面没有显式引出ZwCreateProcess
(XP下是ZwCreateProcessEx) 这个函数,你可以先找到它的Call Number然后再去Hook它。

你可以Hook ZwCreateSection来拦截进程得创建。在创建进程的时候调用ZwCreateSection和创建一般的Section所使用的参数是不同的,这里面可以得到进程得全路径,也可以拦截进程
else
驱动小牛
驱动小牛
  • 注册日期2002-10-21
  • 最后登录2004-06-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-06 12:09
你参考一下RootKit吧
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
7楼#
发布于:2003-10-06 14:56
进程名
PsLookupProcessByProcessId((ULONG)ProcessId, &ProcessPointer);
CurProc = (char *)ProcessPointer;
             CurProc += 0x1FC;

   KdPrint( (\"PROCESS: Process %s has been Created\\n\",CurProc) );
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-13 17:27
哪天看错了,回调函数是一个完成函数。并且在回调函数中得到的是ProcessID而不是_EPROCCESS这个结构,但是使用Navtion函数:PsLookupProcessByProcessId()可由ProcessID得到PEPROCCESS。NTSTATUS PsLookupProcessByProcessId(
     IN ULONG ulProcId,
     OUT PEPROCESS * pEProcess
     );
拿到PEPROCESS在取名字就好说了!不过这个函数只能运行在Win2K下,好运!
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
monkeyy
驱动中牛
驱动中牛
  • 注册日期2001-12-06
  • 最后登录2010-10-10
  • 粉丝0
  • 关注0
  • 积分315分
  • 威望84点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-10-13 17:30
我靠,都有人贴了!呵呵,看来又来说废话了!该打! :D :D :D :D
听说老虎会吃人,所以从没想过去摸老虎的屁股。:( :(
linfeng1216
驱动小牛
驱动小牛
  • 注册日期2004-03-10
  • 最后登录2008-12-31
  • 粉丝0
  • 关注0
  • 积分818分
  • 威望89点
  • 贡献值0点
  • 好评度74点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-05-21 14:47
RootKit是什么?哪位能简单说一下?急!!
这件事很难
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2004-07-20 12:27
用户被禁言,该主题自动屏蔽!
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2004-07-27 14:42
rootkit简单的说就是后门程序,嵌入系统内核,拥有自己的TCP/IP协议栈,可以访问网络而不被发觉,可以隐藏进程,可以隐藏文件,可以窃取密码,等等。


COOL!  哪儿有原代码?
TH1999
驱动小牛
驱动小牛
  • 注册日期2004-03-30
  • 最后登录2013-01-22
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望66点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-07-29 12:50
http://www.rootkit.com
[img]http://61.128.167.6/uploadFace/2127_200421415585766440.gif[/img]
cicada
驱动小牛
驱动小牛
  • 注册日期2003-12-09
  • 最后登录2008-07-11
  • 粉丝1
  • 关注0
  • 积分74分
  • 威望15点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-09-14 08:01
注册PsSetCreateProcessNotifyRoutine只能得到进程创建和销毁的通知,不能拦截进程。并且这时只能得到进程的文件名,没有路径,因为系统这时候还没有把参数信息填进进程空间,得想其他得办法才可以得到。

在Ntoskrnl里面没有显式引出ZwCreateProcess
(XP下是ZwCreateProcessEx) 这个函数,你可以先找到它的Call Number然后再去Hook它。

你可以Hook ZwCreateSection来拦截进程得创建。在创建进程的时候调用ZwCreateSection和创建一般的Section所使用的参数是不同的,这里面可以得到进程得全路径,也可以拦截进程


在创建进程的时候调用ZwCreateSection和创建一般的Section所使用的参数有什么不同呢?能不能讲详细一点。如何判断这是创建进程时执行的ZwCreateSection还是其他时候执行的ZwCreateSection呢?
游客

返回顶部