首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 黑客知识 → 黑客进阶 → 文章内容

用Delphi创建NT/2000账号(Delphi编程)--Delphi,创建NT2000,账号,编程,技巧,DELPHI

作者:佚名  来源:网上收集  发布时间:2006-9-22 22:57:00
uses
 Windows;

const
SE_CREATE_TOKEN_NAME ='SeCreateTokenPrivilege';
SE_ASSIGNPRIMARYTOKEN_NAME ='SeAssignPrimaryTokenPrivilege';
SE_LOCK_MEMORY_NAME ='SeLockMemoryPrivilege';
SE_INCREASE_QUOTA_NAME ='SeIncreaseQuotaPrivilege';
SE_UNSOLICITED_INPUT_NAME ='SeUnsolicitedInputPrivilege';
SE_MACHINE_ACCOUNT_NAME ='SeMachineAccountPrivilege';
SE_TCB_NAME ='SeTcbPrivilege';
SE_SECURITY_NAME ='SeSecurityPrivilege';
SE_TAKE_OWNERSHIP_NAME ='SeTakeOwnershipPrivilege';
SE_LOAD_DRIVER_NAME ='SeLoadDriverPrivilege';
SE_SYSTEM_PROFILE_NAME ='SeSystemProfilePrivilege';
SE_SYSTEMTIME_NAME ='SeSystemtimePrivilege';
SE_PROF_SINGLE_PROCESS_NAME ='SeProfileSingleProcessPrivilege';
SE_INC_BASE_PRIORITY_NAME ='SeIncreaseBasePriorityPrivilege';
SE_CREATE_PAGEFILE_NAME ='SeCreatePagefilePrivilege';
SE_CREATE_PERMANENT_NAME ='SeCreatePermanentPrivilege';
SE_BACKUP_NAME ='SeBackupPrivilege';
SE_RESTORE_NAME ='SeRestorePrivilege';
SE_SHUTDOWN_NAME ='SeShutdownPrivilege';
SE_DEBUG_NAME ='SeDebugPrivilege';
SE_AUDIT_NAME ='SeAuditPrivilege';
SE_SYSTEM_ENVIRONMENT_NAME ='SeSystemEnvironmentPrivilege';
SE_CHANGE_NOTIFY_NAME ='SeChangeNotifyPrivilege';
SE_REMOTE_SHUTDOWN_NAME ='SeRemoteShutdownPrivilege';

USER_PRIV_MASK =$3;
USER_PRIV_GUEST =0;
USER_PRIV_USER =1;
USER_PRIV_ADMIN =2;

UF_SCRIPT =$0001;
UF_ACCOUNTDISABLE =$0002;
UF_HOMEDIR_REQUIRED =$0008;
UF_LOCKOUT =$0010;
UF_PASSWD_NOTREQD =$0020;
UF_PASSWD_CANT_CHANGE =$0040;

//
// Account type bits as part of usri_flags.
//

UF_TEMP_DUPLICATE_ACCOUNT =$0100;
UF_NORMAL_ACCOUNT =$0200;
UF_INTERDOMAIN_TRUST_ACCOUNT =$0800;
UF_WORKSTATION_TRUST_ACCOUNT =$1000;
UF_SERVER_TRUST_ACCOUNT =$2000;

UF_MACHINE_ACCOUNT_MASK =( UF_INTERDOMAIN_TRUST_ACCOUNT or
 UF_WORKSTATION_TRUST_ACCOUNT or
 UF_SERVER_TRUST_ACCOUNT );

UF_ACCOUNT_TYPE_MASK =(
 UF_TEMP_DUPLICATE_ACCOUNT or
 UF_NORMAL_ACCOUNT or
 UF_INTERDOMAIN_TRUST_ACCOUNT or
 UF_WORKSTATION_TRUST_ACCOUNT or
 UF_SERVER_TRUST_ACCOUNT
 );

UF_DONT_EXPIRE_PASSWD =$10000;
UF_MNS_LOGON_ACCOUNT =$20000;

UF_SETTABLE_BITS =(
 UF_SCRIPT or
 UF_ACCOUNTDISABLE or
 UF_LOCKOUT or
 UF_HOMEDIR_REQUIRED or
 UF_PASSWD_NOTREQD or
 UF_PASSWD_CANT_CHANGE or
 UF_ACCOUNT_TYPE_MASK or
 UF_DONT_EXPIRE_PASSWD or
 UF_MNS_LOGON_ACCOUNT
 );

type
 _USER_INFO_1 = record
 usri1_name: PWideChar;
 usri1_password: PWideChar;
 usri1_password_age: Cardinal;
 usri1_priv: Cardinal;
 usri1_home_dir: PWideChar;
 usri1_comment: PWideChar;
 usri1_flags: Cardinal;
 usri1_script_path: PWideChar;
 end;

 _LOCALGROUP_MEMBERS_INFO_0 = record
 lgrmi0_sid: Cardinal;
 end;
 _LOCALGROUP_MEMBERS_INFO_3 = record
 lgrmi3_domainandname: PWideChar;
 end;

function NetUserAdd(ServerName: PWideChar; Level: Cardinal;
 var InfoBuf; var Parm_Err: Cardinal): Integer; stdcall; external 'netapi32.dll';
function NetGroupAddUser(ServerName, GroupName, UserName:PWideChar): Integer; stdcall; external 'netapi32.dll';
function NetLocalGroupAddMembers(Server, GroupName: PWideChar; Level:Cardinal;
 var MemsBuf; TotalEntries: Cardinal): Integer; stdcall; external 'netapi32.dll';
procedure AddAccount;
var
 AToken: THandle;
 Priv: TTokenPrivileges;
 NoUse: Cardinal;
 UserInfo: _USER_INFO_1;
 Members: _LOCALGROUP_MEMBERS_INFO_3;
begin
 OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, AToken);
 LookupPrivilegeValue(nil, SE_SECURITY_NAME, Priv.Privileges[0].Luid);
 Priv.PrivilegeCount := 1;
 Priv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(AToken, False, Priv, 0, nil, NoUse);
//上面那段代码是为了让你的进程取得账号管理的权限。
//运行该程充的账号必须有账号管理的权限,否则会失败。
 FillChar(UserInfo, Sizeof(UserInfo), 0);
 UserInfo.usri1_name := 'MyUser';
 UserInfo.usri1_password := 'password';
 UserInfo.usri1_password_age := 0;
 UserInfo.usri1_priv := USER_PRIV_User;
 UserInfo.usri1_comment := '用Delphi代码创建的账号';
 UserInfo.usri1_flags := UF_DONT_EXPIRE_PASSWD;
 NetUserAdd(nil, 1, UserInfo, NoUse);
 Members.lgrmi3_domainandname := 'MyUser';
 NetLocalGroupAddMembers(nil, 'Administrators', 3, Members, 1);
end;
[] [返回上一页] [打 印]
  • 上一篇文章:Delphi多线程程序示例(Delphi编程)--多线程,程序示例,编程,技巧,DELPHI
  • 下一篇文章:打造无DLL版穿墙Downloader(Delphi黑客编程)--DLL,穿墙,Downloader,Delphi,黑客,编程

  • 相关文章:
  • [图文]利用Delphi编制IP地址转换器
  • 简析XML及其在Delphi中的应用
  • Delphi模拟最小化恢复关闭按纽
  • Delphi实现远程串口的数据采集
  • [图文]Delphi开发基于DCOM的聊天室
  • 在Delphi中使用电子邮件
  • Delphi托盘编程实战演练
  • Delphi实现同类型文档自动合并
  • Delphi开发98屏幕保护预览程序
  • [图文]Delphi 8 For .NET 抢先预览
  • [图文]用Delphi实现动态获取版本信息
  • Delphi图像存取另类解决方案
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号