2月20 msdn中的ginA例子中的WlxLoggedOutSAS

原创 2005年02月20日 14:22:00

登陆的部分发生在WlxLoggedOutSAS
在msdn里的例子ginA例子里,WlxLoggedOutSAS中首先调用
 result = pWlxFuncs->WlxDialogBoxParam(  hGlobalWlx,
                                            hDllInstance,
                                            (LPTSTR) MAKEINTRESOURCE(IDD_LOGON_DIALOG),
                                            NULL,
                                            LogonDlgProc,
                                            (LPARAM) pGlobals );

生成一个登陆对话框,就是平时看到的那个,(LPARAM)pGlobAls 是从WlxLoggedOutSAS传递进来的,估计会吧登陆时输入的用户名和密码都放到里面,pGlobAls->pAccount.
然后调用列子中的函数
result = AttemptLogon(pGlobals, pGlobals->pAccount,
                                pLogonSid, pAuthenticationId);
进入后是
int
AttemptLogon(
    PGlobals        pGlobals,
    PMiniAccount    pAccount,
    PSID            pLogonSid,
    PLUID           pLogonId)
然后调用
LogonUser(  pAccount->pszUsername,
                    pAccount->pszDomain,
                    pAccount->pszPassword,
                    LOGON32_LOGON_INTERACTIVE,
                    LOGON32_PROVIDER_DEFAULT,
                    &hUser)
这个函数是AdvApi32.dll中的,hUser用来返回验证后得到的token,token 的类型是HANDLE,,很奇怪,在windows的文档上说调用的是LsALogonUser,只要得到或伪造这个token就可以了,,我想用个ring 0的程序来伪造这个token,
....后来看到在logonuser中调用L32pLogonUser,在里面Fill in the logon token group list,然后调用LsALogonUser
得到token后
 GetTokenInformation(hUser,
                            TokenStatistics,
                            &TStats,
                            sizeof(TStats),
                            &size);

        *pLogonId = TStats.AuthenticationId;
msdn:
AuthenticationId

Specifies an LUID assigned to the session this token represents. There can be many tokens representing a single logon session.

这个参数被传回,


//
        // The tricky part.  We need to get the Logon SID from the token,
        // since that is what Winlogon will use to protect the windowstation
        // and desktop.
        //
        GetTokenInformation(hUser,
                            TokenGroups,
                            pGroups,
                            1024,
                            &size);
        if (size > 1024)
        {
            pGroups = LocalReAlloc(pGroups, LMEM_FIXED, size);
            GetTokenInformation(hUser,
                                TokenGroups,
                                pGroups,
                                size,
                                &size);
        }
        for (i = 0; i < pGroups->GroupCount ; i++)
        {
            if ((pGroups->Groups[i].Attributes & SE_GROUP_LOGON_ID) == SE_GROUP_LOGON_ID)
            {
                CopySid(GetLengthSid(pLogonSid),
                        pLogonSid,
                        pGroups->Groups[i].Sid );
                break;
            }
        }
        LocalFree(pGroups);
这部分的目的是把每个所有组的SID都加到这个token的Access-control list entry,,不知道话该怎么说,,这几个结构还不了解
msdn:

The TOKEN_GROUPS structure contains information about the group SIDs in an access token.

An application can use the CopySid function to make a copy of a SID in an access token (in a TOKEN_GROUPS structure, for instance) to use in an access-control entry.


....未完

2月20 msdn中的ginA例子中的WlxLoggedOutSAS

导读:   登陆的部分发生在WlxLoggedOutSAS   在msdn里的例子ginA例子里,WlxLoggedOutSAS中首先调用   result = pWlxFuncs->WlxDial...
  • yingfox
  • yingfox
  • 2007年11月13日 22:35
  • 412

msdn中的ginA例子中的WlxLoggedOutSAS

导读:   登陆的部分发生在WlxLoggedOutSAS   在msdn里的例子ginA例子里,WlxLoggedOutSAS中首先调用   result = pWlxFuncs->WlxDial...
  • yingfox
  • yingfox
  • 2007年11月14日 18:11
  • 736

替换GINA.DLL实现自己的登陆界面

导读:   想不想拥有自己个性化的WIN2000登陆界面呢?本文就教你如何实现。   登陆界面示例(这是我在虚拟机上抓的图):            你可以通过编程替换掉微软的MSGINA.DLL,...
  • yingfox
  • yingfox
  • 2007年11月13日 16:43
  • 1181

msdn的一个例子 移动就是这么简单..

都是从网上收集的yuan_one: Editing events sample page// Turn on 2D positioningdocument.execCommand("2D-positi...
  • cuoguo1111
  • cuoguo1111
  • 2007年01月17日 19:03
  • 934

替换GINA.DLL实现自己的登录界面

你可以通过编程替换掉微软的MSGINA.DLL,用来实现自己的密码登陆验证功能,如图,我就加入了两个密码验证的功能。一、原理在NT/2000 中交互式的登陆支持是由WinLogon调用GINA DLL...
  • yushiqiang1688
  • yushiqiang1688
  • 2010年01月21日 11:55
  • 6593

GINA编程-1

GINA编程-1 1 winlogon 简介 Windows Logon Process:Windows NT 用户登陆管理程序,负责管理登录相关的安全性工作,它负责处理用户的登录与注销、启动...
  • zhihu008
  • zhihu008
  • 2013年01月09日 00:50
  • 2119

MSDN的使用及VC6.0的调试

MSDN的使用及VC6.0的调试 1.MSDN的使用方法 1.1使用上下文关联帮助 按下F1键,可从MSDN库中得到上下文相关帮助。你选择一个基于当前窗口和光标位置的主题,同时你将看到包含上下文...
  • mitesi
  • mitesi
  • 2014年03月17日 22:43
  • 1996

在msdn中查找自定义gina程序的线索

没有问题的Gina程序只实现了2个Wlx函数, 其他调用msGina.dll 在没有任何一个用户登陆的情况下,Winlogon.exe接收到SAS事件调用该函数 WlxLoggedOutSAS ...
  • LostSpeed
  • LostSpeed
  • 2010年08月11日 18:11
  • 1483

2018年2月1日训练日记

昨天晚上的cf。。。打的非常惨烈。。。只出了3题。。第三题还被hack了一次。。。好歹最后过了。。。D题没想到dp。。。TLE on test 15。。。赛后看了一眼Q神代码。。。把自己的代码改改一下...
  • LSD20164388
  • LSD20164388
  • 2018年02月01日 17:43
  • 132

vs2010 MSDN 使用经典方式查看

官方网页链接http://visualstudiogallery.msdn.microsoft.com/zh-cn/4c360395-6afd-4087-94ed-cbcbebe04a20?SRC=H...
  • haogeai123
  • haogeai123
  • 2010年11月25日 19:41
  • 28413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2月20 msdn中的ginA例子中的WlxLoggedOutSAS
举报原因:
原因补充:

(最多只允许输入30个字)