Среда, 20 Ноября 2024, 02:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Работа с реестром и BackDoor.Click от DrWeb - где связь?
TimKruzДата: Вторник, 17 Апреля 2012, 22:37 | Сообщение # 1
старожил
Сейчас нет на сайте
Возникла такая проблема. Пишу одну свою программку, завязанную на сети, поэтому заливаю все файлы на свой сайт на Народе. Внезапно сайт заблокировали. Ясно, что в программе что-то намутил и у меня получился "вирус". Стал проверять. Сразу понял, что проблема - в алгоритме работы реестра, т.к. ничего другого такого серьёзного пока не добавлял. Методом научного тыка с помощью virustotal обнаружил примерное положение "вирусного" алгоритма. Алгоритм прост: проверяется наличие ключа моей программы в реестре, и если его там совсем нет - создают его и записывают стандартные значения (настройки программы по-умолчанию).
Вся проблема в том, что DrWeb каким-то образом определяет этот кусок кода как BackDoor.Click.origin или BackDoor.Click.1279 (число точно не помню). Пробовал немного изменить алгоритм, но изменилось только последнее слово в названии вируса. biggrin
Сразу скажу, что разрабатываю в Delphi, но от среды это, я думаю, не зависит - используется стандартный компонент со стандартными функциями, ничего особенного.
Вот примерный код:

Конкретно на это выдаёт BackDoor.Click.origin. На предыдущую версию (без keyexists, только openkey) выдавало что-то типа BackDoor.Click.1279...
Так вот, что это за BackDoor.Click и почему мою программу принимают за него? wacko

P.S. Как же мне надоели все эти антивирусы, которые принимают мои вполне нормальные программы за вирусы... sad


ShadowZiДата: Вторник, 17 Апреля 2012, 22:43 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
[diletantmode]
Бекдор подразумевает, что ты или не ты(но тот кто поломает твой код) через этот код сможешь получить доступ удалённо к компу. Те не вирус но потенциально опасная прога. Те на лицо имеем прогу, которая работает с сетью и при этом может менять значения в реестре, при этом не принадлежит к доверенным источникам. При этом не забываем что у антиверя нет возможности прочитать исходный код, и нет интеллекта чтобы понять принцип работы и вычислить чёрный ящик твоей программы. Вместо этого он смотрит на косвенные признаки.
[/diletantmode]
horaxДата: Вторник, 17 Апреля 2012, 22:48 | Сообщение # 3
TheLord
Сейчас нет на сайте
Quote (TimKruz)
Так вот, что это за BackDoor.Click и почему мою программу принимают за него?

TimKruz, вот как раз он и делает то, что делает твоя программа: создаёт ключи. А дальше - автор такой программы получает доступ к твоим данным. Так что - видимо, часть твоего кода повторяет часть кода бэкдора.




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM
Serg1971Дата: Среда, 18 Апреля 2012, 08:45 | Сообщение # 4
Весёлый программист
Сейчас нет на сайте
TimKruz, просто твоя программа делает те-же действия что и вирус. Вирусы ведь тоже пишут, обычно, с применением стандартных библиотек... Как же определить вирус? smile Просто антивирусник анализирует поведение программы, или присутствие некоторых специфических строк и команд. По этой причине все кейгены и кряки обычно определяются как вирусы, ведь они делают тоже самое - портят определёнными действиями исходные программы! biggrin
Достаточно в блокноте написать строчку:
Code
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

а после сохранения текстового файла - сменить его расширение на соm или exe и вуаля - вы написали в блокноте свой первый вирус!!! biggrin Он конечно стандартный, тестовый и никаких вредных действий не делает.




Сообщение отредактировал Serg1971 - Среда, 18 Апреля 2012, 08:47
PBPROGДата: Среда, 18 Апреля 2012, 09:53 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Quote (TimKruz)
Сразу понял, что проблема - в алгоритме работы реестра
Пиши не в реестр, а в INI файл и антивирь не будет ругаться.
TimKruzДата: Среда, 18 Апреля 2012, 22:44 | Сообщение # 6
старожил
Сейчас нет на сайте
Про то, что антивирус проверяет поведение программы - я знаю. Просто не мог понять, что за поведение в данном случае не нравится DrWeb...

Вот что интересно: у меня в программе два окна. Одно изначально скрытое, на нём настройки, но создаётся сразу. В нём тоже производится чтение и запись в реестр, но его код я не убирал, т.е. на него антивирус не ругается.

Как я понял, ругается именно на запись в реестр чего-либо во время создания (create) или отображения (show) главной формы... Т.е. без предупреждения пользователя.

Всё, проблема решена. Просто не нужно ничего записывать в реестр во время создания/отображения главного окна. Если проверка выявляет отсутствие нужного мне ключа - он будет создан не сразу, а только тогда, когда пользователь зайдёт в настройки и сохранит их. Теперь по всем антивирусам чисто. cool

Я подозреваю, что под BackDoor.Click (именно click) подразумевается программа, которая сразу же, только запустившись (без ведома пользователя, точнее сразу после клика пользователем на её ярлык, например), записывает что-то в реестр.
Но мне всё равно не понятно, какая связь между записью в реестр и "открытой задней дверью"... Т.е. как можно получить доступ к чему-либо, просто-напросто записав что-то в реестр? wacko

Quote (Serg1971)
Вирусы ведь тоже пишут, обычно, с применением стандартных библиотек...

Ага, это вирусы "высокого уровня", которые лепятся в любом "конструкторе" за пару минут и также быстро распознаются.

Quote (PBPROG)
Пиши не в реестр, а в INI файл и антивирь не будет ругаться.

Это можно, но, мне кажется, реестр в данном случае будет удобнее.


trewДата: Четверг, 19 Апреля 2012, 07:12 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Quote (TimKruz)
Это можно, но, мне кажется, реестр в данном случае будет удобнее.


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

1) Портабельность программы (как минимум возможность переносить в любые папки в рамках текущей системы)
2) Всегда можно подкорректировать настройки в том же блокноте , не запуская программу
3) Нет лишнего мусора в реестре.
4) Нет проблем с антивирями. Неизвестно, что завтра запехнут в Dr.WEB или в любой другой антивирь и на что они будут ругаться! А 99% пользователей, получив предупреждение от антивирей, тут же не разбираясь, сотрут программу.
TimKruzДата: Четверг, 19 Апреля 2012, 10:24 | Сообщение # 8
старожил
Сейчас нет на сайте
Quote (trew)
1) Портабельность программы (как минимум возможность переносить в любые папки в рамках текущей системы)

В рамках текущей системы - это как раз реестр лучше, потому что INI файл придётся таскать вместе с файлом программы. С другой стороны, INI легче перенести на другой компьютер. Но у меня там такая мелочь, что переносить на другой компьютер нет смысла.
Quote (trew)
2) Всегда можно подкорректировать настройки в том же блокноте , не запуская программу

В реестре так же просто отредактировать. Run > regedit > ветка "текущий пользователь" (или другая, например, "весь компьютер") > ключ Software (софт) > ключ - имя программы или производителя, потом просто параметры редактируешь. Продвинутый пользователь легко разберётся. А вот "чайник" вообще ни какие файлы настроек трогать не должен, а то сделает так, что программа вообще не запустится. biggrin
Quote (trew)
3) Нет лишнего мусора в реестре.

Ну от мусора ни как не избавишься. Впрочем, он никому не мешает... И потом, есть программы для чистки реестра. Или можно сделать специальную опцию в настройках программы...
Quote (trew)
4) Нет проблем с антивирями.

Ага. Чтобы создать файл в папке с программой, нужно получить доступ к записи в эту папку. Записать файл и записать ключ в реестр - разные вещи, и, думаю, пользователь скорее удалит программу, пишущую какие-то файлы, чем пишущую ключи в реестре... Я так думаю.


ShadowZiДата: Четверг, 19 Апреля 2012, 10:44 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Как продвинутый пользователь я скорее снесу прогу, которая что-то химичит в реестре, чем пишет в свою папку)
TimKruzДата: Четверг, 19 Апреля 2012, 11:06 | Сообщение # 10
старожил
Сейчас нет на сайте
Quote (ShadowZi)
Как продвинутый пользователь я скорее снесу прогу, которая что-то химичит в реестре, чем пишет в свою папку)

Скорее снеси Windows, она что-то там слишком много химичит... biggrin


ShadowZiДата: Четверг, 19 Апреля 2012, 11:07 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
ну тут вопрос доверия всё таки) Виндоусу я больше доверяю чем како-той малоизвестной программе)
trewДата: Четверг, 19 Апреля 2012, 13:35 | Сообщение # 12
почетный гость
Сейчас нет на сайте
Quote
Как продвинутый пользователь я скорее снесу прогу, которая что-то химичит в реестре, чем пишет в свою папку)


Согласен, у меня на компе почти все проги держат свои настройки в папке с программой. Остались только так сказать уникальные, которые заменить не получится. Приходится их каждый раз при переустановке винды ставить заново.
PBPROGДата: Четверг, 19 Апреля 2012, 14:16 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
Quote (trew)
у меня на компе почти все проги держат свои настройки в папке с программой
Винда ХРюшка?
На Windows 7, такое не прокатит без прав админа, т. к. запрещена запись в Program Files.
trewДата: Четверг, 19 Апреля 2012, 14:39 | Сообщение # 14
почетный гость
Сейчас нет на сайте
Quote
Винда ХРюшка?
На Windows 7, такое не прокатит без прав админа, т. к. запрещена запись в Program Files.


Windows 7

В Program Files у меня только те проги, которые хотят намутить (или уже намутили) что-то в реестре. Системный диск у меня только для системы. Для всего остального есть отдельный диск. Переустановил винду, и почти все программы на месте со своими настройками. Более того , для тех у кого две винды на одном компе, для каждой ставить свою версию, пачкающую реестр? Это не для меня.
TimKruzДата: Четверг, 19 Апреля 2012, 19:42 | Сообщение # 15
старожил
Сейчас нет на сайте
Quote (trew)
Переустановил винду, и почти все программы на месте со своими настройками. Более того , для тех у кого две винды на одном компе,

Ну ветку с ключами можно легко экспортировать и потом импортировать, если так уж нужно перенести куда-то в другую систему настройки...
Впрочем, тут всё зависит от вкуса...

Можно сделать так, чтобы программа могла менять положение настроек - в реестре или в файле... В принципе, это не сложно.

Quote (ShadowZi)
Виндоусу я больше доверяю

Зря, зря. Виндоус иногда такие штуки выкидывает... biggrin




Сообщение отредактировал TimKruz - Четверг, 19 Апреля 2012, 19:44
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг