Вопрос по Delphi

Tom d`Cat

Кот. Просто кот.
Модератор
http://www.interface.ru/home.asp?artId=21572 сказав(ла):
Virus.Win32.Induc.a заражает Delphi-приложения на этапе разработки

"Лаборатория Касперского" сообщила о появлении вируса Virus.Win32.Induc.a, распространяющегося через интегрированную среду разработки программного обеспечения CodeGear Delphi. Защита от новейшей угрозы уже реализована во всех продуктах "Лаборатории Касперского".

Для своего размножения Virus.Win32.Induc.a использует механизм двушагового создания исполняемых файлов, реализованный в среде Delphi. Согласно данному механизму, исходный код разрабатываемых приложений сначала компилируется в промежуточные .dcu-модули, из которых затем собираются исполняемые в Windows файлы.

Новый вирус активизируется при запуске зараженного им приложения и проверяет, установлен ли на компьютере пакет среды разработки Delphi версий 4.0-7.0. В случае обнаружения пакета, Virus.Win32.Induc.a внедряется в исходный файл базовых констант Delphi Sysconst.pas и компилирует его, в результате чего получается модифицированный откомпилированный файл базовых констант Sysconst.dcu.

Практически каждый проект Delphi включает строчку "use SysConst", поэтому заражение одного системного модуля ведет к инфицированию всех разрабатываемых приложений. Это приводит к тому, что в результате модификации Sysconst.dcu, в дальнейшем все программы, создаваемые в заражённой среде, содержат код нового вируса. Изменённый pas-файл вирусу больше не нужен и удаляется.

В настоящее время вирус не несет функциональной нагрузки помимо самого заражения, скорее он предназначен для демонстрации и тестирования нового вектора заражений. Отсутствие заметной и деструктивной функциональности, инфицирование новым вирусом некоторых версий популярного интернет-пейджера QIP, а также обычная практика публикации .dcu-модулей разработчиками уже привели к широкому распространению Virus.Win32.Induc.a во всем мире. Вполне вероятно, что в будущем он может быть доработан киберпреступниками в сторону увеличения деструктивности.
Почтили вирусописатели вниманием нашего брата-делфятника... :(

Хоть и без особых последствий, но противно...
Если заражение произошло - причина лечится ручками: переименованием файла "Borland\Delphi7\Lib\sysconst.bak" в sysconst.dcu.
А зараженные файлы находит тот же доктор Вэб.
 

Tom d`Cat

Кот. Просто кот.
Модератор
Добавка:

Первыми заметили этот вирус сами делфятники - его обсуждали на форумах (скажем, в "Королевстве Делфи").
Вирус докомпилировал себя в "\Borland\Delphi7\Lib\sysconst.dcu", добросовестно делая bak-файл (по которому он и определял, заразил уже данную копию Delphi или нет), а уж программисты компилировали ЕХЕ и с ними распространяли вирус.

Кто узнавал - тёр.

Оказалась зараженной версия QIP 8094, вышедшая в конце июля 2009г., но её быстро обновили - на некоторых машинах с ошибками в реестре вирус вызывал runtime error 3.

И вот теперь его сигнатуры вставили себе (с ритуальными воплями "МЫ нашли новую заразу!") ведущие антивирусники. Результат не замедлил сказаться: антивирусы дружно начали удалять зараженные ЕХЕшки...

Если кому интересно - наиболее полная информация о вирусе здесь:


Самое мерзкое, что таким образом отработана новая концепция распространения вируса -таким же образом можно написать механизм для любого компилятора, использующего библиотеки... Вроде, такое и раньше было, но не получило широкого распространения. А при такой пиар-акции вирусописатели схватятся за новую игрушку... Что же, писать самопальную проверку каталогов всех компиляторов на девственность?
 
Останнє редагування:
nod 32 удаляет екзе файл проекта при компиле , может ктото шото посоветовать кроме выключения антивируса?
 

Glu4it

Member
здрасте всем, здачка по делфи:

нада сделать так чтобы в паинтбоксе можно было рисовать всякую всячину с помощью мышки(типа как в обычнонм виндовсовском Paint )
помогите решить проблемку
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, ExtDlgs, StdCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
SavePictureDialog1: TSavePictureDialog;
OpenPictureDialog1: TOpenPictureDialog;
ColorDialog1: TColorDialog;
PrintDialog1: TPrintDialog;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
Panel1: TPanel;
Panel2: TPanel;
PaintBox1: TPaintBox;
procedure PaintBox1MouseDown(Sender:TObject; Button: TMouseButton;
Shift:TShiftState; x,y:Integer);
procedure PaintBox1MouseMove(Sender:TObject; Button: TMouseButton; Shift:TShiftState; x,
y:Integer);
procedure PaintBox1MouseUp(Sender:TObject; Button: TMouseButton;
Shift:TShiftState; x,y:Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
drag: boolean;


implementation

{$R *.dfm}

procedure TForm1.PaintBox1MouseMove(Sender:TObject; Button: TMouseButton;
Shift:TShiftState; x,y:Integer);
var
dtc: TCanvas;
begin
if drag then
begin
dtc:=TCanvas.Create;
dtc.Handle:=GetDC(Hwnd_Desktop);
dtc.Pen.Mode:=pmMaskPenNot;
ReleaseDC(dtc.Handle,Hwnd_Desktop);
dtc.Free;
dtc.Pen.Color:=clGreen;
dtc.Pen.Width:=20;
x:=Mouse.CursorPos.X;
y:=Mouse.CursorPos.Y;
dtc.MoveTo(x,y);
dtc.LineTo(x,y);
end;
end;

procedure TForm1.PaintBox1MouseUp(Sender:TObject; Button: TMouseButton;
Shift:TShiftState; x,y:Integer);
begin
drag:=false;
end;

procedure TForm1.PaintBox1MouseDown(Sender:TObject; Button: TMouseButton;
Shift:TShiftState; x,y:Integer);
begin
drag:=true;
end;



end.
 

dreamer

Member
здрасте всем, здачка по делфи:

нада сделать так чтобы в паинтбоксе можно было рисовать всякую всячину с помощью мышки(типа как в обычнонм виндовсовском Paint )
помогите решить проблемку
PaintBox требует перерисовки при каждом обновлении. Предлагаю использовать Image.Bitmap.Canvas.
 
Зверху