首页
社区
课程
招聘
[讨论]Win7 和Vista下 怎么定位 ssdt shadow
发表于: 2011-2-10 11:19 7876

[讨论]Win7 和Vista下 怎么定位 ssdt shadow

2011-2-10 11:19
7876
Win7 和Vista下 怎么定位 ssdt shadow?

非常感谢!

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 538
活跃值: (460)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
http://bbs.pediy.com/showthread.php?t=101165
2011-2-10 11:36
0
雪    币: 256
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
还有一个问题 不是都说 在win7或是vista下 想要AttachProcess上 cress.exe 不是不行了吗?

请问 该如何操作呢?
2011-2-10 11:58
0
雪    币: 538
活跃值: (460)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
4
http://hi.baidu.com/_achillis/blog/item/da88bb195b75ef0c34fa4173.html
多利用搜索引擎。
2011-2-10 13:38
0
雪    币: 256
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢朋友,xp下 我按照网上说的方法是可以找到 cress.exe 的EXPROCESS 然后 KeAttachProcess() /KeDetachProcess  

那请问 在win7下 和vista下 也可以用 xp的方法来获得吗? 我记得是通过什么 21号端口的来获得

是否通用呢?谢谢
2011-2-10 14:26
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
6
attach上explorer.exe就行了~何必csrss.exe捏?
2011-2-10 19:31
0
雪    币: 256
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
但是为什么网上的代码 都是 attach 到 csrss.exe上面呢?

说到这个 csrss.exe 这个程序,我看到网上有这么一段代码 我就非常的纳闷,不知道你们是否也有这样的疑问呢?

http://www.cnblogs.com/Jesses/articles/1647561.html

应用这个网站上的一段代码

{
  HANDLE Process, hObject;
  HANDLE CsrId = (HANDLE)0;
  OBJECT_ATTRIBUTES obj;
  CLIENT_ID cid;
  UCHAR Buff[0x100];
  POBJECT_NAME_INFORMATION ObjName = (PVOID)&Buff;
  PSYSTEM_HANDLE_INFORMATION_EX Handles;
  ULONG r;

  Handles = GetInfoTable(SystemHandleInformation);

  if (!Handles) return CsrId;

  for (r = 0; r < Handles->NumberOfHandles; r++)
  {
    if (Handles->Information[r].ObjectTypeNumber == 21) //Port object
    {
      InitializeObjectAttributes(&obj, NULL, OBJ_KERNEL_HANDLE, NULL, NULL);

      cid.UniqueProcess = (HANDLE)Handles->Information[r].ProcessId;
      cid.UniqueThread = 0;

      if (NT_SUCCESS(NtOpenProcess(&Process, PROCESS_DUP_HANDLE, &obj, &cid)))
      {
        if (NT_SUCCESS(ZwDuplicateObject(Process, (HANDLE)Handles->Information[r].Handle,NtCurrentProcess(), &hObject, 0, 0, DUPLICATE_SAME_ACCESS)))
        {
          if (NT_SUCCESS(ZwQueryObject(hObject, ObjectNameInformation, ObjName, 0x100, NULL)))
          {
            if (ObjName->Name.Buffer && !wcsncmp(L"\\Windows\\ApiPort", ObjName->Name.Buffer, 20))
            {
              CsrId = (HANDLE)Handles->Information[r].ProcessId;
            }
          }

          ZwClose(hObject);
        }

        ZwClose(Process);
      }
    }
  }

  ExFreePool(Handles);
  return CsrId;
}

这个函数,通过函数的意思 就是说要得到 csrss.exe 这个进程的pid,为什么 我看到好多都是这样写的,(下面的这个链接)
http://blog.csdn.net/aliwy/archive/2009/02/24/3931305.aspx

这个里面的代码,通过进程名做个比较 也可以得到pid啊 而且简单易懂

像第一个链接中的代码 什么判断21 什么\\windows\\ApiPort

我也不懂他们是从哪里知道的 要做这样的比较

请大家们指点指点 ,非常感谢!!!!!
2011-2-11 15:55
0
游客
登录 | 注册 方可回帖
返回
//