С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 11.09.2023
Сообщений: 190
1

Delphi 10.4 периодически собирает Exe с вирусом

26.01.2024, 08:33. Показов 1843. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi 10.4 периодически собирает Exe с вирусом. В одном проекте нет вируса, а в другом есть.
Это наблюдается как в сборке 10.4.1 так и в 10.4.2.
Че делать с этим. Кидаешь файл на другой комп а он сразу удаляется антивирусом. Да и на моем если вынести файл из папки исключения.
Миниатюры
Delphi 10.4 периодически собирает Exe с вирусом  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2024, 08:33
Ответы с готовыми решениями:

explorer.exe... заражён вирусом?
мальчики, спасибо всем, кто откликнулся. отдельное спасибо .None, целую его в обе щёчки. а вот...

Заразился вирусом taskhost.exe
Заразился вирусом taskhost.exe, помогите с ним разобраться пожалуйста Прикрепляю логи ниже.

Борьба с вирусом Label.exe
Доброго дня. Помогите решить проблему. При запуске программа Label.exe грузит на 100% видео-карту....

Может ли svchost.exe быть вирусом?
Поусле установки какой-то скаченной программы стал нагружаться ЦП (при открытии диспетчера задач...

25
122 / 103 / 19
Регистрация: 23.05.2015
Сообщений: 638
26.01.2024, 08:39 2
S0563506, Это обычное дело как только Ваша программа начинает лезть на какой либо сайт в интернете или выполнять другие действия, которые антивирус сочтёт подозрительными.
Что делать - пишите создателям антивируса слезные письма мелким почерком.
Если услышат проблема решится.
0
13 / 11 / 2
Регистрация: 11.10.2023
Сообщений: 138
26.01.2024, 08:45 3
Либо грамотно планируйте архитектуру программы, чтобы её поведение не казалось антивирусу "подозрительным"...

https://encyclopedia.kaspersky... d802c64536
0
Злостный нарушитель
9598 / 5191 / 1185
Регистрация: 12.03.2015
Сообщений: 24,512
26.01.2024, 08:50 4
Цитата Сообщение от S0563506 Посмотреть сообщение
Это наблюдается как в сборке 10.4.1 так и в 10.4.2.
Попробуй сборку 12.0.
0
2 / 2 / 0
Регистрация: 11.09.2023
Сообщений: 190
26.01.2024, 12:00  [ТС] 5
Цитата Сообщение от SeGun Посмотреть сообщение
Это обычное дело как только Ваша программа начинает лезть на какой либо сайт в интернете или выполнять другие действия
Моя программа не работает с сетью, совсем, она читает текстовый файл изменяет его и снова записывает. Это простешая утилита.

А другая хотья бы на локальный сервер делает запрос к БД. Но там вирусов нет.
0
122 / 103 / 19
Регистрация: 23.05.2015
Сообщений: 638
26.01.2024, 12:04 6
Цитата Сообщение от S0563506 Посмотреть сообщение
Моя программа не работает с сетью, совсем, она читает текстовый файл изменяет его и снова записывает
Что за файл?
0
Айлурофил
476 / 410 / 109
Регистрация: 27.05.2017
Сообщений: 2,363
Записей в блоге: 1
26.01.2024, 12:15 7
У меня 10.4.1 и периодически (но не очень часто) возникает такая же проблема. Решаю её просто - вытаскиваю файл из карантина антивируса, и говорю ему, чтобы этот файл больше не трогал.
0
48 / 29 / 2
Регистрация: 04.01.2019
Сообщений: 215
26.01.2024, 12:19 8
Verevkin, А толку.... Как бут-то "индусы" компилятор меняли. Хотя.................
Тут дело в "хреновосперском" - код похож на что гдето, когдато. А пох...й будет вирусом - я решил.

- А юзер???
- Идет в сад и нервно курит в сторонке. Если ума нет и меня поставил......

Добавлено через 1 минуту
Цитата Сообщение от S0563506 Посмотреть сообщение
она читает текстовый файл изменяет его и снова записывает. Это простешая утилита.
где и какой файл??? !!!!!!!!!!!!!
0
541 / 241 / 27
Регистрация: 05.05.2022
Сообщений: 1,573
26.01.2024, 12:20 9
А это Каспер постоянно врет. Идете на сайт Каспера, делаете проверку, потом отправляете на углубленную проверку с жалобой на ложное срабатывание. Через какое-то время (около суток, может меньше) получаете уведомление, что вирусов нет, добавили в исключения. Если у вас антивирь корпоративный, и вы им не управляете, то у них обновление каждый день, так что обнову баз они быстро накатят.

Сталкивался с этим уже минимум дважды. И возникает совершенно непредсказуемо. Просто чутка кода дописать и откуда-то типа VируZ

Исключения антивиря - это не вариант. Разве что локально, пока проблему решают.
0
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
26.01.2024, 13:25 10
У меня касперский срабатывал, когда я буквально сделал безобидный бесконечный цикл)
0
2 / 2 / 0
Регистрация: 11.09.2023
Сообщений: 190
26.01.2024, 13:55  [ТС] 11
Цитата Сообщение от stalkernet Посмотреть сообщение
где и какой файл??? !!!!!!!!!!!!!
Да обычный текстовый на диске Д.

Вот код всей программы
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
unit FMain;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.ExtCtrls, System.RegularExpressions,
  Vcl.ComCtrls, System.ImageList, Vcl.ImgList, Vcl.Menus, Vcl.Buttons;
 
type
  TfrmMain = class(TForm)
    pnlMain: TPanel;
    strngrdT: TStringGrid;
    pnlBtn: TPanel;
    dlgOpen: TOpenDialog;
    pnlProgramm: TPanel;
    mmoProgram: TMemo;
    lblProgramm: TLabel;
    pnlT: TPanel;
    lblT: TLabel;
    StatusBar: TStatusBar;
    pnlD: TPanel;
    lblD: TLabel;
    strngrdD: TStringGrid;
    pnlH: TPanel;
    lblH: TLabel;
    strngrdH: TStringGrid;
    il16px: TImageList;
    spl1: TSplitter;
    chkPos: TCheckBox;
    edtPos: TEdit;
    pm: TPopupMenu;
    dlgSave: TSaveDialog;
    mniSetPos: TMenuItem;
    mniEdit: TMenuItem;
    btnOpen: TBitBtn;
    btnReplace: TBitBtn;
    btnSave: TBitBtn;
    btnSaveAs: TBitBtn;
    mniAnaliz: TMenuItem;
    pmTHD: TPopupMenu;
    mniEditByKlik: TMenuItem;
    procedure btnOpenClick(Sender: TObject);
    procedure strngrdTSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure btnReplaceClick(Sender: TObject);
    procedure chkPosClick(Sender: TObject);
    procedure mniSetPosClick(Sender: TObject);
    procedure mniEditClick(Sender: TObject);
    procedure mniAnalizClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnSaveAsClick(Sender: TObject);
    procedure mniEditByKlikClick(Sender: TObject);
  private
    { Private declarations }
    FileName: string;
    Pos: Integer;
    HeadText: string;
    Text: string;
    procedure AnalizProgram;
    procedure ReplaceToolsInText;
 
  public
    { Public declarations }
  end;
 
var
  frmMain: TfrmMain;
 
implementation
 
{$R *.dfm}
 
procedure TfrmMain.btnOpenClick(Sender: TObject);
begin
  if dlgOpen.Execute then begin
    StatusBar.Panels[0].Text := '';
    StatusBar.Panels[1].Text := '';
    edtPos.Text := '0';
    chkPos.Checked := False;
    mmoProgram.Text := '';
    mmoProgram.ReadOnly := True;
    mmoProgram.Font.Color := clWindowText;
    mniEdit.Checked := False;
 
    var Flag := False;
    if FileExists(dlgOpen.FileName) then begin
      FileName := dlgOpen.FileName;
      try
        mmoProgram.Lines.LoadFromFile(FileName);
        AnalizProgram;
        StatusBar.Panels[0].Text := ExtractFileName(FileName);
        StatusBar.Panels[1].Text := '[' + TimeToStr(Time) + '] Файл открыт.';
      except
        ShowMessage('Ошибка загрузки файла.');
      end;
    end else begin
      ShowMessage('Файл не найден.');
      Exit;
    end;
  end;
end;
 
procedure TfrmMain.btnReplaceClick(Sender: TObject);
begin
  ReplaceToolsInText;
  mmoProgram.Text := HeadText + Text;
  mmoProgram.ReadOnly := True;
  mmoProgram.Font.Color := clWindowText;
  mniEdit.Checked := False;
 
  AnalizProgram;
  StatusBar.Panels[1].Text := '[' + TimeToStr(Time) + '] Замена выполнена.';
end;
 
procedure TfrmMain.btnSaveAsClick(Sender: TObject);
begin
  if dlgSave.Execute then begin
    try
      FileName := dlgSave.FileName + ExtractFileExt(FileName);
      mmoProgram.Lines.SaveToFile(FileName);
      StatusBar.Panels[0].Text := ExtractFileName(FileName);
      StatusBar.Panels[1].Text := '[' + TimeToStr(Time) + '] Файл сохранен как ' + ExtractFileName(FileName);
      ShowMessage('Файл сохранен как ' + ExtractFileName(FileName))
    except
      ShowMessage('Не удалось сохранить файл ' + ExtractFileName(FileName))
    end;
  end;
end;
 
procedure TfrmMain.btnSaveClick(Sender: TObject);
begin
  try
    mmoProgram.Lines.SaveToFile(FileName);
    StatusBar.Panels[1].Text := '[' + TimeToStr(Time) + '] Сохранение завершено.';
    ShowMessage('Файл ' + ExtractFileName(FileName) + ' сохранен.')
  except
    ShowMessage('Не удалось сохранить файл ' + ExtractFileName(FileName))
  end;
end;
 
procedure TfrmMain.chkPosClick(Sender: TObject);
begin
  if not chkPos.Checked then begin
    edtPos.Text := '0';
  end;
end;
 
procedure TfrmMain.mniAnalizClick(Sender: TObject);
begin
  AnalizProgram;
  StatusBar.Panels[0].Text := '[' + TimeToStr(Time) + '] ' + 'Повторный анализ выполнен.' ;
end;
 
procedure TfrmMain.mniEditByKlikClick(Sender: TObject);
begin
  mniEditByKlik.Checked := not mniEditByKlik.Checked;
  if mniEditByKlik.Checked then begin
    strngrdT.Options := strngrdT.Options + [goAlwaysShowEditor];
    strngrdH.Options := strngrdH.Options + [goAlwaysShowEditor];
    strngrdD.Options := strngrdD.Options + [goAlwaysShowEditor];
  end else begin
    strngrdT.Options := strngrdT.Options - [goAlwaysShowEditor];
    strngrdH.Options := strngrdH.Options - [goAlwaysShowEditor];
    strngrdD.Options := strngrdD.Options - [goAlwaysShowEditor];
  end;
end;
 
procedure TfrmMain.mniEditClick(Sender: TObject);
begin
  mniEdit.Checked := not mniEdit.Checked;
  if mniEdit.Checked then begin
    mmoProgram.Font.Color := clHighlight;
    mmoProgram.ReadOnly := False;
  end else begin
    mmoProgram.Font.Color := clWindowText;
    mmoProgram.ReadOnly := True;
  end;
end;
 
procedure TfrmMain.mniSetPosClick(Sender: TObject);
begin
  edtPos.Text := IntToStr(mmoProgram.SelStart);
  chkPos.Checked := True;
  AnalizProgram;
end;
 
procedure TfrmMain.AnalizProgram;
begin
  Pos := StrToIntDef(edtPos.Text, 0);
  HeadText := Copy(mmoProgram.Text, 1, Pos);
  Text := Copy(mmoProgram.Text, Pos+1, Length(mmoProgram.Text));
 
  var ListMatch := TStringList.Create;
  ListMatch.Sorted := True;
  ListMatch.Duplicates := dupIgnore;
 
  var RegEx: TRegEx;
  var Match: TMatch;
 
  //Создание списка совпадений
  Match := RegEx.Match(Text, 'T\d+');
  while Match.Success do begin
    ListMatch.Add(Match.Value);
    Match := Match.NextMatch;
  end;
 
  //Очистка
  strngrdT.Cols[0].Clear;
  strngrdT.Cols[1].Clear;
 
  //Заполнение
  strngrdT.RowCount := ListMatch.Count;
  for var I := 0 to ListMatch.Count-1 do begin
    strngrdT.Cells[0, I] := ListMatch[I];
    strngrdT.Cells[1, I] := StringReplace(ListMatch[I], 'T', '', [rfReplaceAll]);
  end;
 
 
  ListMatch.Clear;
  //Создание списка совпадений
  Match := RegEx.Match(Text, 'H\d+');
  while Match.Success do begin
    ListMatch.Add(Match.Value);
    Match := Match.NextMatch;
  end;
 
  //Очистка
  strngrdH.Cols[0].Clear;
  strngrdH.Cols[1].Clear;
 
  //Заполнение
  strngrdH.RowCount := ListMatch.Count;
  for var I := 0 to ListMatch.Count-1 do begin
    strngrdH.Cells[0, I] := ListMatch[I];
    strngrdH.Cells[1, I] := StringReplace(ListMatch[I], 'H', '', [rfReplaceAll]);
  end;
 
  ListMatch.Clear;
  //Создание списка совпадений
  Match := RegEx.Match(Text, 'D\d+');
  while Match.Success do begin
    ListMatch.Add(Match.Value);
    Match := Match.NextMatch;
  end;
 
  //Очистка
  strngrdD.Cols[0].Clear;
  strngrdD.Cols[1].Clear;
 
  //Заполнение
  strngrdD.RowCount := ListMatch.Count;
  for var I := 0 to ListMatch.Count-1 do begin
    strngrdD.Cells[0, I] := ListMatch[I];
    strngrdD.Cells[1, I] := StringReplace(ListMatch[I], 'D', '', [rfReplaceAll]);
  end;
 
  ListMatch.Free;
end;
 
procedure TfrmMain.ReplaceToolsInText;
begin
  //Замена T на промежуточное значение ###T
  for var I := 0 to strngrdT.RowCount-1 do begin
    Text := StringReplace(Text, strngrdT.Cells[0, I], '###' + strngrdT.Cells[0, I], [rfReplaceAll]);
  end;
  //Замена ###T на конечное значение
  for var I := 0 to strngrdT.RowCount-1 do begin
    Text := StringReplace(Text, '###' + strngrdT.Cells[0, I], 'T' + strngrdT.Cells[1, I], [rfReplaceAll]);
  end;
 
  //Замена H на промежуточное значение ###H
  for var I := 0 to strngrdH.RowCount-1 do begin
    Text := StringReplace(Text, strngrdH.Cells[0, I], '###' + strngrdH.Cells[0, I], [rfReplaceAll]);
  end;
  //Замена ###H на конечное значение
  for var I := 0 to strngrdH.RowCount-1 do begin
    Text := StringReplace(Text, '###' + strngrdH.Cells[0, I], 'H' + strngrdH.Cells[1, I], [rfReplaceAll]);
  end;
 
  //Замена D на промежуточное значение ###D
  for var I := 0 to strngrdD.RowCount-1 do begin
    Text := StringReplace(Text, strngrdD.Cells[0, I], '###' + strngrdD.Cells[0, I], [rfReplaceAll]);
  end;
  //Замена ###D на конечное значение
  for var I := 0 to strngrdD.RowCount-1 do begin
    Text := StringReplace(Text, '###' + strngrdD.Cells[0, I], 'D' + strngrdD.Cells[1, I], [rfReplaceAll]);
  end;
end;
 
procedure TfrmMain.strngrdTSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
 if ACol = 1 then
   TStringGrid(Sender).Options := TStringGrid(Sender).Options + [goEditing]
 else
   TStringGrid(Sender).Options := TStringGrid(Sender).Options - [goEditing];
end;
 
end.
0
541 / 241 / 27
Регистрация: 05.05.2022
Сообщений: 1,573
26.01.2024, 14:04 12
Еще раз, идите на сайт Каспера, что именно он нашел в самом безобидном коде, никто не знает. Эта проблема возникает совершенно случайно, и не столь уж редко, экзешники Каспер жрать любит.
0
Native x86
Эксперт Hardware
5638 / 3378 / 957
Регистрация: 13.02.2013
Сообщений: 10,705
26.01.2024, 18:04 13
Некоторые антивирусы вообще очень нервно реагируют на создание EXE-фалов. Другие сразу же бьют тревогу, если видят в коде что-то типа GetDC(0).

А еще запросто бывает, что напишет кто-то на Delphi зловреда, а эти макаки из антивирусных компаний хватают из него первую попавшуюся, характерную для всех делфийских EXE-файлов сигнатуру, и понеслось.
0
0 / 0 / 0
Регистрация: 26.01.2024
Сообщений: 9
26.01.2024, 18:21 14
У меня была проблема когда написал вечный цикл и динамически создавал массивы.
Хотел проверить когда система начнет ругаться на недостаток памяти. Но Касперский сразу заругался и ни чего не вышло.

Думаю стоит внимательно поискать код на который ругается антивирус. Может кусками
закоментить.
Была еще проблема когда файл создается и заново перезаписывается. Ни знаю что ему не понравилось, но код пришлось переписать.
0
2 / 2 / 0
Регистрация: 11.09.2023
Сообщений: 190
26.01.2024, 20:40  [ТС] 15
Цитата Сообщение от Mirext Посмотреть сообщение
Думаю стоит внимательно поискать код на который ругается антивирус. Может кусками
закоментить.
Объявление этих переменных под любыми именами, приводит к тому что вся программа считается вирусом. И даже если объявит их в области VAR функции.
Такие дела ).
Коментим var RegEx: TRegEx; и уже нет вируса.

var RegEx: TRegEx;
//var Match: TMatch

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TfrmMain.AnalizProgram;
begin
  Pos := StrToIntDef(edtPos.Text, 0);
  HeadText := Copy(mmoProgram.Text, 1, Pos);
  Text := Copy(mmoProgram.Text, Pos+1, Length(mmoProgram.Text));
 
  var ListMatch := TStringList.Create;
  ListMatch.Sorted := True;
  ListMatch.Duplicates := dupIgnore;
 
  var RegEx: TRegEx;
  //var Match: TMatch;
 {
  //Создание списка совпадений
  Match := RegEx.Match(Text, 'T\d+');
  while Match.Success do begin
    ListMatch.Add(Match.Value);
    Match := Match.NextMatch;
  end;
......
0
Модератор
10060 / 5402 / 3353
Регистрация: 17.08.2012
Сообщений: 16,522
26.01.2024, 20:45 16
Вообще, компилятор Дельфи (любой) весьма часто порождает код, который воспринимается антивирусами (не только Касперским) как вредоносный. И это хорошо. Где-то на форуме обсуждался "вирус Дельфи", лень искать. Да и в интернете тоже по запросу "вирус Дельфи" сообщений пруд пруди. Воевал я с этим. Бесполезно. Ну и, дай-то Бог. Если компилятор порождает программу, похожую на вирус - это, вообще-то, хорошо, поскольку компилятор использует возможности процессора, которые не использует C++. Всего лишь. (А мужики-то и не знали).
0
5868 / 4596 / 1448
Регистрация: 14.04.2014
Сообщений: 20,393
Записей в блоге: 20
27.01.2024, 21:26 17
чаще всего простой перенос переменных или добавление пары строчек кода любого плюс Rebuild выводят приложение из-под удара
а в целом стоит просто поставить исключение на всю папку и на Делфи, чтобы антивирус КАЖДЫЙ РАЗ не занимался проверкой всех 100500 открываемых при компиляции файлов.
0
48 / 29 / 2
Регистрация: 04.01.2019
Сообщений: 215
28.01.2024, 11:45 18
Интересно а сейчас если в конец ЕХЕ-шника дописать какие-то данные, дабы не плодить лишние файлы (типа как раньше - в конце хранили данные последней работы с которой нужно начать) - будет восприниматься как вирус?
0
Злостный нарушитель
9598 / 5191 / 1185
Регистрация: 12.03.2015
Сообщений: 24,512
28.01.2024, 12:06 19
Цитата Сообщение от stalkernet Посмотреть сообщение
типа как раньше - в конце хранили данные последней работы с которой нужно начать
Это какой софт и когда так делал?
0
48 / 29 / 2
Регистрация: 04.01.2019
Сообщений: 215
28.01.2024, 16:46 20
да хотябы координаты окна и его размеры. делал очень давно и недавно - самописаные часы с нужными функциями быстрого вызова.
0
28.01.2024, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2024, 16:46
Помогаю со студенческими работами здесь

Проблема с вирусом Programdata\RealtekHD\taskhost.exe
Здравствуйте. Оказалось, год у меня сидел майнер. Очень мешал работать, но ника кне мог понять из...

bndmss.exe.....кто имел дело с таким вирусом?
что за зверь? кто встречался, методы борьбы, поделитесь опытом

Столкнулся с вирусом майнером robotdemo.exe не знаю что делать
столкнулся с вирусом майнером robotdemo.exe не знаю что делать надеюсь на вашу помощь и понимание...

Периодически не запускаются exe приложения
Здравствуйте. Собрал компьютер. Материнская плата: Colorfull C.A320M-K PRO V14 iGame Процессор:...

Svchost.exe периодически умирает
Здраствуйте. периодически у меня умирает процесс ымсрщыеюучу и при этом отключаеться интернет.. как...

Explorer.exe периодически грузит ЦП на 25 %
Обычно это происходит при просмотре видео на youtube. Выдает ошибку о том, что Explorer.exe...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru