【API】API函数创建用户,添加到管理组
API 函数 管理 创建 用户 添加
2023-09-14 08:57:09 时间
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;
}
运行截图
相关文章
- thinkphp百度小程序打造的接口api
- Jxl的API概述(转)
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与LUA之间进行数据函数交互以及解决“PANIC: UNPROTECTED ERROR IN CALL TO LUA API (ATTEMPT TO INDEX A NIL VALUE)”的问题
- 日期 日历 时区 地区 格式化 API 案例 MD
- Jenkins API groovy调用实践: Jenkins Core Api & Job DSL创建项目
- 【GO】 K8s 管理系统项目6[API部分--Namespace]
- 用Mixer API函数调节控制面板的音频设置
- 【STM32H7教程】第55章 STM32H7的图形加速器DMA2D的基础知识和HAL库API
- Atitit.api参数传递的设计
- Atitit.index manager api design 索引管理api设计
- Aittit.attilax超级框架 api 规划大全
- ExtJs自学教程(1):一切从API開始
- 利用js_API 运行对html文档元素的属性的CRUD操作
- Windows API一日一练(11)GetMessage函数
- Windows API一日一练(25)CreateSolidBrush函数
- Windows API一日一练(37)MoveWindow函数
- Windows API一日一练(38)SetWindowPos函数
- Windows API一日一练(39)AnimateWindow函数
- Windows API一日一练(51)CreateDirectory和RemoveDirectory函数
- Windows API一日一练(56)SetEndOfFile和GetFileSizeEx函数
- Windows API一日一练(47)CreateSemaphore和ReleaseSemaphore函数
- Windows API一日一练(76)GlobalAlloc函数
- Windows API一日一练(79)GlobalMemoryStatusEx函数
- Windows API一日一练(82)LoadLibrary函数
- Windows API一日一练(93)GetSaveFileName函数
- 第二人生的源码分析(五十五)OpenGL的API函数管理
- Windows非公开API函数的调用办法
- JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language
- RFSoC应用笔记 - RF数据转换器 -20- API使用指南之配置RFDC工作状态(ADC、DAC均适用)
- RFSoC应用笔记 - RF数据转换器 -19- API使用指南之状态指示函数(ADC、DAC均适用)
- RobotFrameWork - 08 - Selenium API - 元素相关操作、注释、休眠及等待元素出现