Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 504
от 24.08.2006, 23:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 362, Экспертов: 60
В номере:Вопросов: 4, Ответов: 6


Вопрос № 52551: Привет эксперты. Вопрос: знаю что есть вирусы которые дописывают себя в файл и файл после этого считается заражённым . Вот вопрос как это происходит и как вирус выполняется из файла ? Возьмём обычный пример .exe файла ! Где то прочита...
Вопрос № 52575: Здравствуйте уважаемы эксперты! Вопрос по MFC: Программа с окном на основе CDialog, окно немодальное. Проблема в следующем: при закрытии окна не завершается программа, т.е. приложение остается висеть в памяти. Пробовал весить обработчики на W...
Вопрос № 52580: Доброго времени суток, уважаемые эксперты. Есть ли у кого-то рабочая библиотека (Visual C++ 7.1) для работы с DBF файлами. Качал xBase, но при компиляции выдает кучу ошибок и предупреждений (из-за особенностей компилятора и библиотек). Разбиратьс...
Вопрос № 52592: Здравствуйте уважаемые эксперты! У меня возник вопрос касательно запуска браузера по умолчанию: Существуют ли какой-нибудь способ из моей программы запустить браузер? Таким, чтобы он перешел на нужную мне страницу в Интернет? Заранее бла...

Вопрос № 52.551
Привет эксперты.
Вопрос: знаю что есть вирусы которые дописывают себя в файл и файл после этого считается заражённым .
Вот вопрос как это происходит и как вирус выполняется из файла ?
Возьмём обычный пример .exe файла !
Где то прочитал что если в файле 2 строки “This program cannot be run in DOS mode” то файл заражён .
Но меня интересует как вирус дописывается в конец файла и от туда выполняется !
Если вирус на C++ откомпилирован то с какова смешения он должен записывать свои байты в чужой файл ?
После “This program cannot be run in DOS mode” лил позже ???
С уважением,
Zmeu.
Отправлен: 19.08.2006, 01:42
Вопрос задал: Tamashev Denis M (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Zmeu!
В целом идея такая, что структура испольняемых (exe) файлов достаточно известна и хорошо задокумментирована. Поэтому при достаточном знании ассемблера, написать вирус может любой.
Самые простые вирусы находят, где в файле находится сам исполняемый код, и в самое его начало дописывают команду перехода в конец файла. А уже в конце файла, за основным телом программы, размещают код вируса.
То, что вы прочитали, извините, меня, просто полнейшая чушь.

Вы, наверное, подмали, что инфицированный файл сразу же запускается? Нет. Но если на компьютере запускается инфицированная программа, то вирус ищет в этой же директории и в соседних еще exe-файлы и заражает их. И только когда вы запустите зараженный файл - вирус сработает в первый раз после того, как он "поселился" на новом месте.
На каком бы языке не компилировалась программа, структура исполняемого файла будет одинакова. На чем написан вирус - тем более, индифферентно.

Более подробную информацию смотрите в ссылке в приложении.

Приложение:

---------
Не узнаешь - не попробуешь.

Ответ отправил: Сухомлин Кирилл Владимирович (статус: Студент)
Ответ отправлен: 19.08.2006, 02:27
Оценка за ответ: 5
Комментарий оценки:
Насчёт запуска инф. файлов я знаю =)))
Но всё равно спасибо =)

Отвечает: Www2
Здравствуйте, Tamashev Denis M!

Строка "This program cannot be run in DOS mode" есть в каждом Windows exe-файле, который может исполняться только под Windows. Если попытаться запустить такой файл из под DOS, на экран будет выведена эта строка, т.е. что это программа для Windows и под DOS она работать не может.

Заразить exe-файл на самом деле не так просто, как может показаться. В exe-файлах есть специальные таблицы, руководствуясь информацией из которых, операционная система загружает программу в оперативную память, корректирует некоторые её части, настраивая на адреса, в которые программа загружена.

Кроме того, насколько я знаю, exe-файлов существует 3 типа: обычные DOS, LX для 16-битных Windows (версии до 95), LE - для 32-битных Windows.

Чтобы корректно заразить exe-файл, нужно определить его тип и исправить таблицы в заголовке exe-файла. Для вируса, скомпилированного в exe-файл это практически нереально, поскольку при его загрузке, также нужно будет исправлять его exe-таблицы. Поэтому часть exe-вируса пишут сразу на ассемблере и вручную заражают первый exe-файл. Дальнейшие заражения должны происходить автоматически, после каждого запуска заражённого файла.
Ответ отправил: Www2 (статус: 5-ый класс)
Ответ отправлен: 19.08.2006, 16:07
Оценка за ответ: 5
Комментарий оценки:
Какой ужас ! =)))
Спасибо !
Но мне нужно написать что-то вроде программы JoinerExe которая склеивает 2 exe файла в один ! Такая программа есть в Интернете ! Я даже её скачал но проблема осталась дело в том что добрые дяди в саму программу влепили аж 2 трояна =)
Я пытался всё это дело отделить но не получилось !
Там 3 –exe файла вроде 2 из них упакованы UPX 1.22 !
Можете сами посмотреть вот ссылка : http://www.artnails.jino-net.ru/jor.rar
Пароль : для архива 7788 !
Как он их лепит ???
С уважением ,
Zmeu .


Вопрос № 52.575
Здравствуйте уважаемы эксперты!
Вопрос по MFC:
Программа с окном на основе CDialog, окно немодальное. Проблема в следующем: при закрытии окна не завершается программа, т.е. приложение остается висеть в памяти. Пробовал весить обработчики на WM_DESTROY в которых вызывал ExitInstance(), но обработчик не вызыватеся, значит сообщение не присылается, тогда как? Весить обработчик на WM_CLOSE?
На всякий случай привожу код в приложении.
Заранее спасибо.

Приложение:

Отправлен: 19.08.2006, 11:22
Вопрос задал: Saw (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: D3rp
Здравствуйте, Saw!
Посмотрите здесь http://www.mini-soft.ru/book/visual_c/glava5/Index25.php
Ответ отправил: D3rp (статус: 5-ый класс)
Ответ отправлен: 19.08.2006, 11:25
Оценка за ответ: 5
Комментарий оценки:
Оперативно =)


Вопрос № 52.580
Доброго времени суток, уважаемые эксперты.
Есть ли у кого-то рабочая библиотека (Visual C++ 7.1) для работы с DBF файлами. Качал xBase, но при компиляции выдает кучу ошибок и предупреждений (из-за особенностей компилятора и библиотек). Разбираться с этим и исправлять их не очень хочется (да и нет возможностей). Может у кого-то есть что-нибудь готовое? Нужно уметь читать записи и добавлять в зависимости от формата (количества колонок, их типа), который в заголовке файла.
(решения через ODBC и подобное не предлагать)
Пока я нашел только описание формата (http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/helloworld/dbheader.htm), но написание библиотеки займет у меня неоправданно много времени, что (как мне сказали на работе) не приемлемо, есть и так что делать, а пока ищи библиотеки.
Спасибо.
Отправлен: 19.08.2006, 12:16
Вопрос задал: Mihasic (статус: 5-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 15)

Отвечает: Zitz
Здравствуйте, Mihasic!

Самое лучшее что я видел - alxBASE
---------
Успех неизбежен + Думать вообще полезно + Чем сейчас, тем лучше
Ответ отправил: Zitz (статус: Студент)
Ответ отправлен: 19.08.2006, 12:49


Вопрос № 52.592
Здравствуйте уважаемые эксперты!

У меня возник вопрос касательно запуска браузера по умолчанию:
Существуют ли какой-нибудь способ из моей программы запустить браузер? Таким, чтобы он перешел на нужную мне страницу в Интернет? Заранее благодарен за ответ...
Отправлен: 19.08.2006, 14:37
Вопрос задал: Sasa (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Mihasic
Здравствуйте, Sasa!
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q174156

Суть:
1. определить браузер по умолчанию при помощи FindExecutable
2. запустить ShellExecute

Хотя на самом деле меня еще не подводил такой вызов (мой браузер Файрфокс):
ShellExecute(NULL, "open", "http://rusfaq.ru", NULL, NULL, 0);
Ответ отправил: Mihasic (статус: 5-ый класс)
Ответ отправлен: 19.08.2006, 15:19
Оценка за ответ: 5

Отвечает: __Cheat3r
Здравствуйте, Sasa!

void OpenURL(String URL)
{
TRegistry *mreg = new TRegistry();
mreg->Access = KEY_READ;
mreg->RootKey = HKEY_LOCAL_MACHINE;
mreg->OpenKeyReadOnly("SOFTWARE\Classes\HTTP\shell\open\command");
String Path=mreg->ReadString(""),link;

bool a1=Path.Pos("%1");
bool a1q=Path.Pos(""%1"");

if(a1)
{
if(a1q)
{
AnsiReplaceStr(Path,""%1"",URL);
link=Path;
}
else
{
AnsiReplaceStr(Path,"%1","""+URL+""");
link=Path;
}

}
else
link=mreg->ReadString("")+"""+URL+""";
mreg->CloseKey();
delete mreg;
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if( !CreateProcess( NULL,link.c_str(),NULL,NULL,FALSE,0,NULL,NULL,&si,&pi ))
{
ShellExecute(this,"open",URL,NULL,NULL,SW_SHOWNORMAL);
}
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );

}
//------------------------------------------------------------------------------
Ответ отправил: __Cheat3r (статус: 1-ый класс)
Ответ отправлен: 19.08.2006, 17:50


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное