Hey,all
the code can creat a user account. How can delete a user account?
;=============================
.586
.model flat, stdcall
option casemap :none 
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include \masm32\include\kernel32.inc
include \masm32\include\netapi32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\netapi32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
USER        DW 078H          ; WCHAR *USER = L"X";
PASS        DW 0           
USERPOINTER  DD OFFSET USER  ; PBYTE USERPOINTER = (PBYTE) &USER;

D1          DD 0            ; DWORD D1 = 0;
D2          DD 0            ; DWORD D2 = 0;

GP          DD 0            ; LOCALGROUP_INFO_1* GP = NULL;
UI          DB 32 DUP(0)    ; USER_INFO_1 U1 = {0};
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
MOV  EDI, OFFSET UI

MOV  dword ptr , OFFSET USER ; UI.usri1_name = USER;
MOV  dword ptr , OFFSET PASS ; UI.usri1_password = (LPWCSTR) ((DWORD)USER+2);
MOV  dword ptr , 00000001H  ; UI.usri1_priv = USER_PRIV_USER;
MOV  dword ptr , 00010021H  ; UI.usri1_flags = UF_SCRIPT |
                                      ;    UF_PASSWD_NOTREQD | UF_DONT_EXPIRE_PASSWD;
   
PUSH OFFSET USER     
PUSH 00000000H
CALL NetUserDel                      ; NetUserDel(NULL, L"X");
   
PUSH OFFSET D2
PUSH OFFSET UI
PUSH 00000001H
PUSH 00000000H
CALL NetUserAdd                      ; if (NetUserAdd(NULL,1, &UI, &D2)
CMP  EAX, 0                          ;  != 0)
JNE  ERR                              ; goto ERR;
   
PUSH 00000000H
PUSH OFFSET D1
PUSH OFFSET D2
PUSH 0FFFFFFFH
PUSH OFFSET GP
PUSH 00000001H
PUSH 00000000H
CALL NetLocalGroupEnum                ; if (NetLocalGroupEnum(0,1,&GP,0x0FFFFFFF,&D2,&D1,0)
CMP  EAX, 0                          ;  != 0)
JNE  ERR                              ; goto ERR;
MOV  ECX, D2
   
GO: PUSH ECX                              ; for (D1=0;D1<D2;D1++) {
   
MOV  EDX, DWORD PTR
MOV  EDX, DWORD PTR

PUSH 00000001H
PUSH OFFSET USERPOINTER
PUSH 00000003H   
PUSH EDX
PUSH 00000000H
   
CALL NetLocalGroupAddMembers          ;  NetLocalGroupAddMembers(         
                                      ;    NULL, GP.lgrpi1_name, 3,
                                      ;    USERPOINTER, 1);
POP  ECX
LOOP GO                              ; }

PUSH dword ptr
CALL NetApiBufferFree                ; NetApiBufferFree(GP);

PUSH 0
JMP  OK                              ; goto OK;
   
ERR: PUSH 1                                ; ERR: ExitProcess(1);
OK: CALL ExitProcess                      ; OK:  ExitProcess(0);
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

end start

;=============================
Greets
Posted on 2006-02-13 03:25:01 by dcskm4200
NetLocalGroupDelMembers
Posted on 2006-02-13 10:17:56 by arafel
OK!
Thanks
Posted on 2006-02-13 18:36:40 by dcskm4200