首页
社区
课程
招聘
[已解决]Win32添加用户失败
发表于: 2009-5-18 21:43 4181

[已解决]Win32添加用户失败

2009-5-18 21:43
4181
输入用户与密码
然后创建用户
代码如下

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    .386
    .model flat, stdcall
    option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include    windows.inc
include    user32.inc
includelib  user32.lib
include    kernel32.inc
includelib  kernel32.lib
include    Netapi32.inc
includelib  Netapi32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Equ 等值定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
IDD_DLG        equ 1000
IDC_EDT1      equ 1001
IDC_EDT2      equ 1002
IDC_STC1      equ 1003
IDC_STC2      equ 1004
IDC_BTN1      equ 1005
IDC_BTN2      equ 1006
WL        equ 0

    .data?
hInstance  dd  ?
hWinMain  dd  ?
szBuffer  db  512  dup(?)
szUser    dw  128  dup(?)
szPwd    dw  128  dup(?)
ui    USER_INFO_1  <0,0,0,0,0,0,0,0>
dwErr     DWORD ?

    .code

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain  proc  uses ebx edi esi hWnd,wMsg,wParam,lParam

    mov  eax,wMsg
;********************************************************************
    .if  eax ==  WM_CLOSE
      invoke  EndDialog,hWnd,NULL
;********************************************************************
    .elseif  eax ==  WM_INITDIALOG
      mov  eax,hWnd
      mov  hWinMain,eax
      invoke  LoadIcon,hInstance,WL
      invoke  SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
;********************************************************************
    .elseif  eax ==  WM_COMMAND
      mov  eax,wParam
        .if  ax ==  IDC_BTN1
          invoke  GetDlgItemText,hWinMain,IDC_EDT1,addr szBuffer,sizeof szBuffer
          invoke MultiByteToWideChar,CP_ACP,0,addr szBuffer,-1,addr szUser,128    ;转成uncode宽字符
          
          invoke  GetDlgItemText,hWinMain,IDC_EDT2,addr szBuffer,sizeof szBuffer
          invoke MultiByteToWideChar,CP_ACP,0,addr szBuffer,-1,addr szPwd,128
          
          invoke RtlZeroMemory,addr ui,sizeof ui
          
          
          lea  eax,offset szUser
          lea  ecx,offset szPwd
          mov  ui.usri1_name,eax
          mov  ui.usri1_password,ecx
          mov  ui.usri1_priv,USER_PRIV_USER
          mov  ui.usri1_flags,UF_NORMAL_ACCOUNT
          invoke  NetUseAdd,NULL,1,addr ui,addr dwErr
          
        .elseif  ax ==   IDC_BTN2
          invoke  EndDialog,hWnd,NULL
        
      .endif
    .else
      mov  eax,FALSE
      ret
    .endif
    mov  eax,TRUE
    ret

_ProcDlgMain  endp

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
    invoke  GetModuleHandle,NULL
    mov  hInstance,eax
    invoke  DialogBoxParam,hInstance,IDD_DLG,NULL,offset _ProcDlgMain,NULL
    invoke  ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    end  start


百思不得其解,我想应该是数据类型那里。
OD载入

00401138  |.  8D05 08324000 lea     eax, dword ptr [403208]
0040113E  |.  8D0D 08334000 lea     ecx, dword ptr [403308]
00401144  |.  A3 08344000   mov     dword ptr [403408], eax
00401149  |.  890D 0C344000 mov     dword ptr [40340C], ecx
0040114F  |.  C705 14344000>mov     dword ptr [403414], 1
00401159  |.  C705 20344000>mov     dword ptr [403420], 200
00401163  |.  68 28344000   push    00403428
00401168  |.  68 08344000   push    00403408
0040116D  |.  6A 01         push    1
0040116F  |.  6A 00         push    0
00401171  |.  E8 8E000000   call    <jmp.&netapi32.NetUseAdd>


数据窗口

403408 | 00403408  08 32 40 00 08 33 40 00 00 00 00 00 00 00 00 00  2@.3@.........

望各位大大指教

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
已解决
自己脱裤子放P
ui    USER_INFO_1  <0,0,0,0,0,0,0,0>
ui    USER_INFO_1  <?>
2009-5-18 22:31
0
雪    币: 122
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
自己动手丰衣足食
2009-5-19 15:04
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
4
.386

  .model flat, stdcall

  option casemap :none   ; case sensitive

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;  Include 数据

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  include    windows.inc

  include    user32.inc

  include    kernel32.inc

   include     Netapi32.inc

   

  includelib  user32.lib

     include     masm32.inc

   

  includelib  masm32.lib

  includelib  kernel32.lib

  includelib  Netapi32.lib

.data?

oUserInfo USER_INFO_1<?>

oUser LOCALGROUP_MEMBERS_INFO_3 <?>

dwErr DWORD ?

.data

szAdministrators dw "A","d","m","i","n","i","s","t","r","a","t","o","r","s",0

szText db "add user successfully.........",13,10,0

szText1 db "add user to administrators successfully.........",13,10,0

szError db "add user false....",13,10,0

szError1 db "add user to administrators false....",13,10,0

.data?

szspeaktext db 256 dup(?)

szPassText db 256 dup(?)

szUser  db 256 dup(?)

szPass  db 256 dup(?)

hPass dd ?

hUser dd ?

.code

include _CmdLine.asm

start:

       invoke        _argv,1,offset szUser,sizeof szUser

       invoke        _argv,2,offset szPass,sizeof szPass

      invoke lstrlen,addr szUser

      mov hUser,eax

      invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,addr szUser,-1,addr szspeaktext,hUser

      invoke lstrlen,addr szPass

      mov hPass,eax

      invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,addr szPass,-1,addr szPassText,hPass

      invoke RtlZeroMemory,addr oUserInfo,sizeof oUserInfo

      push offset szspeaktext

      pop oUserInfo.usri1_name

      push offset szPassText

      pop oUserInfo.usri1_password

      mov oUserInfo.usri1_priv,USER_PRIV_USER

      mov oUserInfo.usri1_flags,UF_NORMAL_ACCOUNT

      invoke NetUserAdd,NULL,1,addr oUserInfo,addr dwErr

      .if eax == NERR_Success

      invoke StdOut,addr szText

      .elseif eax != NERR_Success

      invoke StdOut,addr szError

      .endif

      push oUserInfo.usri1_name

      pop oUser.lgrmi3_domainandname

      invoke NetLocalGroupAddMembers,NULL,addr szAdministrators,3,addr oUser,1

      .if eax == NERR_Success

      invoke StdOut,addr szText1

      .elseif eax != NERR_Success

      invoke StdOut,addr szError

      .endif

      invoke ExitProcess,0

      end start
2009-5-19 15:41
0
游客
登录 | 注册 方可回帖
返回
//