首页
社区
课程
招聘
[原创]nt5src去除激活的winlogon
发表于: 2022-10-11 22:46 17834

[原创]nt5src去除激活的winlogon

2022-10-11 22:46
17834

最近在研究nt5src代码,一直困惑在激活的问题上。其实,只要有winlogon.exe的源代码就没有问题啦!(废话)


原指南上有两个版本的winlogon:

1、“Winlogon200X_v3c.zip”这个轻松编译完成(需要先编译“win2003_pidgenXP_cracked.zip”),但是这个程序很多bug,登录后配置经常出问题,还有莫名的bug,估计是2000的机制与2003差异太大了。不推荐大家研究它。

2、“ds.zip_decompiled_XPSP1_winlogon.zip”这个是编译不通过的。经过我研究后,终于编译通过,而且经过测试完美的解除了激活的问题。而且这个不需要“win2003_pidgenXP_cracked.zip”。


具体修改过程如下:

1、编译“licensing”目录

先修改目录“ds\security\licensing\explib”下面的文件“sources”,增加include头文件搜素位置

INCLUDES=$(BASE_INC_PATH);$(TERMSRV_INC_PATH);$(SDK_INC_PATH)\crt\stl60;

增加“includes”搜索目录“$(SDK_INC_PATH)\crt\stl60;”(红色字体部分),实际缺少“utility、xutility”文件的搜索位置,该两条文件在目录“public\sdk\inc\crt\stl60”下。

进入到“ds\security\licensing”下,进行编译“build /cZP”



2、编译“winlogon”

在编译“winlogon.exe”前需要修改目录“ds\security\gina\winlogon”下五条文件,修改的地方分别如下:

2.1、sclogon2.c

找到以下几个函数的实现地方


NTSTATUS s_RPC_ScHelperGetProvParam( 

     handle_t h,

     BINDING_CONTEXT BindingContext,

     LPCWSTR wszPIN,

     DWORD dwParam,

     DWORD *pdwDataLen,

     OUT_BUFFER1 *pbData,

     DWORD dwFlags)


NTSTATUS s_RPC_ScHelperSignMessage( 

     handle_t h,

     BINDING_CONTEXT BindingContext,

     LPCWSTR wszPIN,

     ULONG Algorithm,

     ULONG BufferLength,

     BYTE *Buffer,

     ULONG *pSignatureLength,

     OUT_BUFFER2 *pSignature)



NTSTATUS s_RPC_ScHelperSignPkcsMessage( 

     handle_t h,

     BINDING_CONTEXT BindingContext,

     LPCWSTR wszPIN,

     LPSTR AlgorithmPszObjId,

     DWORD AlgorithmParametersLength,

     BYTE *AlgorithmParameters,

     DWORD dwSignMessageFlags,

     ULONG BufferLength,

     BYTE *Buffer,

     ULONG *pSignedBufferLength,

     OUT_BUFFER2 *pSignedBuffer)



NTSTATUS s_RPC_ScHelperDecryptMessage( 

     handle_t h,

     BINDING_CONTEXT BindingContext,

     LPCWSTR wszPIN,

     ULONG CipherLength,

     BYTE *CipherText,

     ULONG *pClearTextLength,

     OUT_BUFFER2 *pClearText)

把函数以上函数的定义修改成如下(原来的定义3790头文件函数定义不一致)


NTSTATUS s_RPC_ScHelperGetProvParam( 

    /* [in] */ handle_t h,

    /* [in] */ BINDING_CONTEXT BindingContext,

    /* [unique][in] */ LPCWSTR wszPIN,

    /* [in] */ BOOL fBindingIsCertAndKey,

    /* [in] */ DWORD dwParam,

    /* [out][in] */ DWORD *pdwDataLen,

    /* [out] */ OUT_BUFFER1 *pbData,

    /* [in] */ DWORD dwFlags)

 


NTSTATUS s_RPC_ScHelperSignMessage( 

    /* [in] */ handle_t h,

    /* [in] */ BINDING_CONTEXT BindingContext,

    /* [unique][in] */ LPCWSTR wszPIN,

    /* [in] */ BOOL fBindingIsCertAndKey,

    /* [in] */ ULONG Algorithm,

    /* [in] */ ULONG BufferLength,

    /* [size_is][in] */ BYTE *Buffer,

    /* [out][in] */ ULONG *pSignatureLength,

    /* [out] */ OUT_BUFFER2 *pSignature)

 


NTSTATUS s_RPC_ScHelperSignPkcsMessage( 

    /* [in] */ handle_t h,

    /* [in] */ BINDING_CONTEXT BindingContext,

    /* [unique][in] */ LPCWSTR wszPIN,

    /* [in] */ BOOL fBindingIsCertAndKey,

    /* [in] */ LPSTR AlgorithmPszObjId,

    /* [in] */ DWORD AlgorithmParametersLength,

    /* [size_is][unique][in] */ BYTE *AlgorithmParameters,

    /* [in] */ DWORD dwSignMessageFlags,

    /* [in] */ ULONG BufferLength,

    /* [size_is][in] */ BYTE *Buffer,

    /* [out][in] */ ULONG *pSignedBufferLength,

    /* [out] */ OUT_BUFFER2 *pSignedBuffer)

 


LONG s_RPC_ScHelperDecryptMessage( 

    /* [in] */ handle_t h,

    /* [in] */ BINDING_CONTEXT BindingContext,

    /* [unique][in] */ LPCWSTR wszPIN,

    /* [in] */ BOOL fBindingIsCertAndKey,

    /* [in] */ ULONG CipherLength,

    /* [size_is][in] */ BYTE *CipherText,

    /* [out][in] */ ULONG *pClearTextLength,

    /* [out] */ OUT_BUFFER2 *pClearText)

它们都是缺少一个参数。再在当前文件,搜素以下代码


    Status = ScHelperGetProvParam(

        pucPIN,

        pContext->pbLogonInfo,

        dwParam,

        pbData->pb,

        pdwDataLen,

        dwFlags);    

把它修改成以下(也是缺少一个参数)


   Status = ScHelperGetProvParam(

        pucPIN,

        pContext->pbLogonInfo,

        0,

        dwParam,


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 8
支持
分享
最新回复 (12)
雪    币: 229
活跃值: (235)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
抱歉漏了一个修改的地方。
还需要把“ds\security\common\sclgnrpc\sclgnrpc.idl”文件里面的三个函数定义删除掉(因为没有实现代码),具体函数名称为:
NTSTATUS RPC_ScHelper_CryptAcquireCertificatePrivateKey(

NTSTATUS RPC_ScHelper_CryptSetProvParam(

NTSTATUS RPC_ScHelper_CryptReleaseContext(
2022-10-12 11:33
1
雪    币: 30032
活跃值: (2582)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3


不错的贴子。

最后于 2022-10-12 22:38 被bestbird编辑 ,原因: 无
2022-10-12 17:39
0
雪    币: 6
活跃值: (3470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
bestbird 有一段时间,用Delphi把什么lsass、winlogon、termsrv都实现了一次,纯粹为了练习。后来,觉得没什么意思。。。http://www.138soft.com/winlogon.htm
难道是陈惊涛?
2022-10-12 19:30
0
雪    币: 300
活跃值: (2532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
mark
2022-10-31 10:32
0
雪    币: 6
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我也在编译Windows XP SP1 和 Windows Server 2003,并且编译成功了。
2024-1-5 19:16
0
雪    币: 6
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
bestbird 不错的贴子。
D:\srv03rtm\ds\security\common\sclgnrpc\obj\i386\sclgnrpc_c.c
他们在这个文件中实现,但我不知道怎么链接。
2024-1-31 21:48
0
雪    币: 6
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
psj_pediy 抱歉漏了一个修改的地方。 还需要把“ds\security\common\sclgnrpc\sclgnrpc.idl”文件里面的三个函数定义删除掉(因为没有实现代码),具体函数名称为: NTSTA ...
D:\srv03rtm\ds\security\common\sclgnrpc\obj\i386\sclgnrpc_c.c
他们在这个文件中实现,但我不知道怎么链接。
2024-1-31 21:49
0
雪    币: 6
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
psj_pediy 抱歉漏了一个修改的地方。 还需要把“ds\security\common\sclgnrpc\sclgnrpc.idl”文件里面的三个函数定义删除掉(因为没有实现代码),具体函数名称为: NTSTA ...
这个问题我解决了,只需要编辑D:\srv03rtm\ds\security\common\sclgnrpc\source中的
MIDL_FLAGS=$(MIDL_FLAGS) -prefix server "s_"
修改为
MIDL_FLAGS=$(MIDL_FLAGS) -prefix server 
就是删除前缀“s_”

然后修改sclogon2.c
s_IRPCSCLogon_v1_0_s_ifspec
修改为:
IRPCSCLogon_v1_0_s_ifspec

问题就出在函数名不匹配
2024-2-1 00:58
0
雪    币: 6
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
psj_pediy 抱歉漏了一个修改的地方。 还需要把“ds\security\common\sclgnrpc\sclgnrpc.idl”文件里面的三个函数定义删除掉(因为没有实现代码),具体函数名称为: NTSTA ...
我根据你的教程修改成功的版本 :https://download.csdn.net/download/MYMOTOE6/88799395?spm=1001.2014.3001.5501
2024-2-1 01:08
0
雪    币: 3594
活跃值: (31031)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享
2024-2-1 09:27
1
雪    币: 30032
活跃值: (2582)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12

为什么你们总是说没有winlogon?奇怪

最后于 2024-2-4 17:23 被bestbird编辑 ,原因:
2024-2-3 23:48
0
雪    币: 6
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
bestbird 为什么你们总是说没有winlogon?奇怪
泄露的源码中是没有的,你这从哪来?
2024-2-4 01:12
0
游客
登录 | 注册 方可回帖
返回
//