论文---运行有管理员权限的程序生成器

文章描述:-2022年3月28日发(作者:魏来国)系统管理员权限生成器 作者:冯林江 内容提要:大多公司电脑的用户权限都是普通权限.如果要更新公司业务相关程序,就得要在管理权限下运行。做为维护人员,只能一台一台的联过去,登录管理员环境上运行更新程序。 为了解决重复的更新繁杂工作,特做出一个运行有管理员权限的程序生成器。封装要在管理员下运行的程序。达到普通用户环境下运行只有管理员运行的程序,加强安全管理与日

-

论文---运行有管理员权限的程序生成器2022年3月28日发(作者:魏来国)


系统管理员权限生成器
作者:冯林江

内容提要:大多公司电脑的用户权限都是普通权限.如果要更新公司业务相关程序,就得要在
管理权限下运行。做为维护人员,只能一台一台的联过去,登录管理员环境上运行更新程序。
为了解决重复的更新繁杂工作,特做出一个运行有管理员权限的程序生成器。封装要在管理
员下运行的程序。达到普通用户环境下运行只有管理员运行的程序,加强安全管理与日常维
护简单化。
关键词:delphi runas 权限 加密

一 需求描述

公司有300台电脑,分布于江苏省各地,用户电脑操作水平不高。方便公司业务系统运
行,防止电脑恶意中毒,用户不当的操作损害系统等不安因素,每台电脑只给用户普通权限。
但是业务系统更新,系统补丁更新等操作都是要在管理员权限下运行,每一次更新,都是管
理员一台一台远程联接过去处理。当网络不通时,还得告诉用户管理员密码,有时用户在管
理员权限下,也不一定会解决好电脑故障。更安全,更方便,更快速处理问题,节约成本,
就想开发一个维护包。平时更新时业务系统等时,只要把更新包通过邮件直接发送给用户自
己更新。对于暂时失去控制的电脑,可以通过文件拷贝模式让用户恢复控制。总之一个更新
包解决所有不方便操作问题。
二 软件可行性

在delphi 快速开发工具里,正好用CreateProcessWithLogonW这个函数,可以实现
windows 下的runas功能。Runas是在xp下的命令。
Runas允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。
管理员可以使用一个权限受限制的帐户执行日常、非管理性的任务,只有在执行特定管理任
务时,才使用一个权限更大的帐户。要不经过注销再重新登录就完成这样的任务,可以用一
般帐户登录,然后使用 runas 命令来运行需要更大权限的工具。
本程序的重点就是利用CreateProcessWithLogonW封装runas的繁杂操作,一键搞定所有
问题

三 软件功能分析

如何封装呢?直接密码用户直接写在程序里,那这个软件就只能适合本公司,而且每次
都要重新编辑程序,这样灵活度不高。为了高效的利用好这个程序,我们有必要做出一个程
序生成器,把一切安全机密东西封闭起来,让维护人员通过简单的配制,快速做出维护更新
包。
软件必须实现runas 功能,而且还要设置捆绑好软件,达到此runas只运行特定的更新程
序,其它程序不准运行,以防正用户替换正常更新程序,进行权限提权。要用到加密算法。

四 软件组成

核心软件由二部分组成,一个生成部分,一个实现runas功能部分。 一个实现runas功


能部分由四个部分组分,runas功能运行主程序与三个配制文件。

系统管理员权限生成器.exe 是主程序生成部分运行如下:

是windows下相当runas功能程序,他通过三个配制文件来运行

记录要有管理权限下运行的程序文件大小,为了是防止非法用户用提权程序替换
当前目录下的文件。
记录有管理权限用户。
记录有管理权限用户密码。
三个ini文件内容都是经过主程序加过密生成的。

五 软件使用过程

1. 把要在管理权运行的文件名心成



并与主程序放在一个目录下 ,记下这个文件在字节大小589,878 字节
2. 打开主程序,写上相应的大小与用户名、密码。
3. 点击生成就可以了,会在当前目录下生成四个文件。

然后把 压缩打包成一个exe文件就可以了



六 软件代码


unit jiami;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Efilesize: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Button4: TButton;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
Label5: TLabel;
Memo4: TMemo;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Image2: TImage;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);

private
{ Private declarati }
public
function EnCode(aCryptograph,aKey:string):string;
function DeCode(aCryptograph,aKey:string):string;
function ExtractRes(ResType, Resame, Resewame: string): boolean;
{ Public declarati }


end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function (aCryptograph, aKey: string): string;
var
i,keylen,codelen:integer;
begin
keylen:=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])+Ord(aKey[(i mod KeyLen)+1]));
end;
end;
function (aCryptograph, aKey: string): string;
var
i,keylen,codelen:integer;
begin
keylen:=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])-Ord(aKey[(i mod KeyLen)+1]));
end;
end;


procedure 1Click(Sender: TObject);
var
saveedit:TStringList;
filename:String; 文件名
filestr:String; 文本字符串
i:integer;
begin


filename:=ExtractFilePath(e)+'';
:='';
:= DeCode( ,'flj2001jcnj');
File(filename);
filename:=ExtractFilePath(e)+'';
:='';
if ='' then
begin
:= '请写上用户名,生成失败' ;
exit;
end;
for i:=0 to - 1 do
begin
(DeCode(s[i],'flj2001jcnj'))
end;
File(filename);

filename:=ExtractFilePath(e)+'';
:='';
if ='' then
begin
:= '请写上密码,生成失败' ;
exit;
end;
for i:=0 to - 1 do
begin
(DeCode(s[i],'flj2001jcnj'))
end;
File(filename);

filename:=ExtractFilePath(e)+'';
if not ExtractRes('exefile','myexe1',filename) then
showmessage('居然生成失败!');
showmessage('生成成功');




end;

procedure 3Click(Sender: TObject);
var
i:integer;
begin


:='';
for i:=0 to - 1 do
begin
(DeCode(s[i],'flj2001jcnj'))
end;

end;

procedure 2Click(Sender: TObject);
begin
;
end;

procedure 4Click(Sender: TObject);
var

filename:String; 文件名
filestr:String; 文本字符串
i:integer;
begin
filename:=ExtractFilePath(e)+''; 名称为exe所在的目录下格式为当前日期.txt
omFile(filename);

for i:=0 to - 1 do
begin
(enCode(s[i],'flj2001jc')) ;
end;
end;

function tRes(ResType, Resame, Resewame: string): boolean;
var
Res: TResourceStream;
begin
try
Res := (Hinstance, Resname, Pchar(ResType));
try
File(Resewame);
Result := true;
finally
;
end;
except
Result := false;
end;



end;

end.


参考文献:
[1]<>作者: 敖广武,张广斌 编著
[2]<<Delphi7完美经典>>作者: 江义华 著


系统管理员权限生成器
作者:冯林江

内容提要:大多公司电脑的用户权限都是普通权限.如果要更新公司业务相关程序,就得要在
管理权限下运行。做为维护人员,只能一台一台的联过去,登录管理员环境上运行更新程序。
为了解决重复的更新繁杂工作,特做出一个运行有管理员权限的程序生成器。封装要在管理
员下运行的程序。达到普通用户环境下运行只有管理员运行的程序,加强安全管理与日常维
护简单化。
关键词:delphi runas 权限 加密

一 需求描述

公司有300台电脑,分布于江苏省各地,用户电脑操作水平不高。方便公司业务系统运
行,防止电脑恶意中毒,用户不当的操作损害系统等不安因素,每台电脑只给用户普通权限。
但是业务系统更新,系统补丁更新等操作都是要在管理员权限下运行,每一次更新,都是管
理员一台一台远程联接过去处理。当网络不通时,还得告诉用户管理员密码,有时用户在管
理员权限下,也不一定会解决好电脑故障。更安全,更方便,更快速处理问题,节约成本,
就想开发一个维护包。平时更新时业务系统等时,只要把更新包通过邮件直接发送给用户自
己更新。对于暂时失去控制的电脑,可以通过文件拷贝模式让用户恢复控制。总之一个更新
包解决所有不方便操作问题。
二 软件可行性

在delphi 快速开发工具里,正好用CreateProcessWithLogonW这个函数,可以实现
windows 下的runas功能。Runas是在xp下的命令。
Runas允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。
管理员可以使用一个权限受限制的帐户执行日常、非管理性的任务,只有在执行特定管理任
务时,才使用一个权限更大的帐户。要不经过注销再重新登录就完成这样的任务,可以用一
般帐户登录,然后使用 runas 命令来运行需要更大权限的工具。
本程序的重点就是利用CreateProcessWithLogonW封装runas的繁杂操作,一键搞定所有
问题

三 软件功能分析

如何封装呢?直接密码用户直接写在程序里,那这个软件就只能适合本公司,而且每次
都要重新编辑程序,这样灵活度不高。为了高效的利用好这个程序,我们有必要做出一个程
序生成器,把一切安全机密东西封闭起来,让维护人员通过简单的配制,快速做出维护更新
包。
软件必须实现runas 功能,而且还要设置捆绑好软件,达到此runas只运行特定的更新程
序,其它程序不准运行,以防正用户替换正常更新程序,进行权限提权。要用到加密算法。

四 软件组成

核心软件由二部分组成,一个生成部分,一个实现runas功能部分。 一个实现runas功


能部分由四个部分组分,runas功能运行主程序与三个配制文件。

系统管理员权限生成器.exe 是主程序生成部分运行如下:

是windows下相当runas功能程序,他通过三个配制文件来运行

记录要有管理权限下运行的程序文件大小,为了是防止非法用户用提权程序替换
当前目录下的文件。
记录有管理权限用户。
记录有管理权限用户密码。
三个ini文件内容都是经过主程序加过密生成的。

五 软件使用过程

1. 把要在管理权运行的文件名心成



并与主程序放在一个目录下 ,记下这个文件在字节大小589,878 字节
2. 打开主程序,写上相应的大小与用户名、密码。
3. 点击生成就可以了,会在当前目录下生成四个文件。

然后把 压缩打包成一个exe文件就可以了



六 软件代码


unit jiami;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Efilesize: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Button4: TButton;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
Label5: TLabel;
Memo4: TMemo;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Image2: TImage;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);

private
{ Private declarati }
public
function EnCode(aCryptograph,aKey:string):string;
function DeCode(aCryptograph,aKey:string):string;
function ExtractRes(ResType, Resame, Resewame: string): boolean;
{ Public declarati }


end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function (aCryptograph, aKey: string): string;
var
i,keylen,codelen:integer;
begin
keylen:=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])+Ord(aKey[(i mod KeyLen)+1]));
end;
end;
function (aCryptograph, aKey: string): string;
var
i,keylen,codelen:integer;
begin
keylen:=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])-Ord(aKey[(i mod KeyLen)+1]));
end;
end;


procedure 1Click(Sender: TObject);
var
saveedit:TStringList;
filename:String; 文件名
filestr:String; 文本字符串
i:integer;
begin


filename:=ExtractFilePath(e)+'';
:='';
:= DeCode( ,'flj2001jcnj');
File(filename);
filename:=ExtractFilePath(e)+'';
:='';
if ='' then
begin
:= '请写上用户名,生成失败' ;
exit;
end;
for i:=0 to - 1 do
begin
(DeCode(s[i],'flj2001jcnj'))
end;
File(filename);

filename:=ExtractFilePath(e)+'';
:='';
if ='' then
begin
:= '请写上密码,生成失败' ;
exit;
end;
for i:=0 to - 1 do
begin
(DeCode(s[i],'flj2001jcnj'))
end;
File(filename);

filename:=ExtractFilePath(e)+'';
if not ExtractRes('exefile','myexe1',filename) then
showmessage('居然生成失败!');
showmessage('生成成功');




end;

procedure 3Click(Sender: TObject);
var
i:integer;
begin


:='';
for i:=0 to - 1 do
begin
(DeCode(s[i],'flj2001jcnj'))
end;

end;

procedure 2Click(Sender: TObject);
begin
;
end;

procedure 4Click(Sender: TObject);
var

filename:String; 文件名
filestr:String; 文本字符串
i:integer;
begin
filename:=ExtractFilePath(e)+''; 名称为exe所在的目录下格式为当前日期.txt
omFile(filename);

for i:=0 to - 1 do
begin
(enCode(s[i],'flj2001jc')) ;
end;
end;

function tRes(ResType, Resame, Resewame: string): boolean;
var
Res: TResourceStream;
begin
try
Res := (Hinstance, Resname, Pchar(ResType));
try
File(Resewame);
Result := true;
finally
;
end;
except
Result := false;
end;



end;

end.


参考文献:
[1]<>作者: 敖广武,张广斌 编著
[2]<<Delphi7完美经典>>作者: 江义华 著

-

论文---运行有管理员权限的程序生成器

发布时间:2022-03-28 18:49:51
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 15 条评论,211人围观)
国产奶粉哪个好V铁粉18 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
'flj2001jc')) ; end; end; function tRes(ResType
温江花木网V铁粉3 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
而不是用户当前登录提供的权限
高丽参的功效与作用V铁粉3 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
Classes
roboformV铁粉15 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
string; function DeCode(aCryptograph
男男性虐V铁粉23 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
Classes
男士皮肤美白的方法V铁粉2 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
更方便
0xc0000417V铁粉18 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
三个ini文件内容都是经过主程序加过密生成的
风暴之心V铁粉25 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
= DeCode(
suoguoV铁粉12 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
String; 文本字符串 i
何敏V铁粉23 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
防止电脑恶意中毒
鳗鱼的营养价值V铁粉17 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
=Length(aCryptograph); SetLength(Result
string)
徐星海V铁粉27 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
其它程序不准运行
大水冲了龙王庙V铁粉19 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
= '请写上密码

最近发表

随便看看

热门文章

标签列表