模拟token访问网络共享路径下的文件

情景描述:

访问网络共享路径下的文件时,对齐进行的GetFileAttributesEx、PathFileExists等一系列操作均会失败,返回错误码1326(用户名或密码不正确)

 

问题原因:

因为磁盘映射是和当前账户关联的,当账户登录之后才会存在这个盘符。

当用一个没有权限token的线程去访问,就需要模拟token(模拟能正常访问者的进程token)

 

操作步骤:

1.获取操作进程的id。

2、获取操作进程

3.打开操作进程的token

4.模拟token

 

模拟token操作伪代码:

    HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, TRUE, dProcessID);
    if (NULL == hProcess)
	    return;

    HANDLE hToken = NULL;
    if (OpenProcessToken(hProcess, TOKEN_QUERY | TOKEN_DUPLICATE, &hToken))
    {
	    if (ImpersonateLoggedOnUser(hToken))
	    {
	    }
	    CloseHandle(hToken);
    }
    CloseHandle(hProcess);
    RevertToSelf();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值