Skip to main content

Сраный nod32

Аватар пользователя забыл_пароль
Не в сети
Гражданин
Зарегистрирован: 29.10.2005
Сообщения: 1414
Баллы: 1427
Сраный nod32

Такая проблема (причем совсем непонятная). Делаю сервер используя winsock. Но когда компилю, nod32 ругается "подозрительный файл". Методом тыка нашел, что ему не нравится. Вот 2 участка кода:

function GetSystemDirectory:string;<br />
var<br />
   pcSystemDirectory : PChar;<br />
   dwSDSize          : DWORD;<br />
begin<br />
   dwSDSize := MAX_PATH + 1;<br />
   GetMem( pcSystemDirectory, dwSDSize );   //не нравится эта строка<br />
   try<br />
      if Windows.GetSystemDirectory( pcSystemDirectory, dwSDSize ) <> 0 then<br />
         Result := pcSystemDirectory;<br />
   finally<br />
      FreeMem( pcSystemDirectory );<br />
   end;<br />
end;<br />

Второй кусок большой [по этому не стану его приводить - но он не нравится ВЕСЬ], в нём используется winsock2.

А главный прикол в том, что, если эти функции использовать в другой программе, то они нормально работают и нод молчит.
Понимаю, что виной всему ср**я эвристика, и я предполагаю, что оно ругается в связи с выделением памяти.
Может кто знает, что за прикол такой??? Или как можно это обойти? (в первом случае - как подругому вычислить системную диру Win)

Аватар пользователя Electrostatic
Не в сети
Студент
Зарегистрирован: 28.09.2005
Сообщения: 458
Баллы: 472
Сраный nod32

а может просто снести ету херню и поставить нормальный антивирь? Smile

Аватар пользователя забыл_пароль
Не в сети
Гражданин
Зарегистрирован: 29.10.2005
Сообщения: 1414
Баллы: 1427
Сраный nod32

"Electrostatic" пишет:

а может просто снести ету херню и поставить нормальный антивирь? Smile

забыл сказать:
1. Я сам им не пользуюсь, но некоторые пользуются - а я планирую софт не только для себя писать.
2. Переходить на другой язык уже поздно - слишком много написано.
3. Удалять ключевые строки нельзя - а то получается совершенно другая прога.

Кстати, если подклюдить ещё пару модулей вроде Registry, Classes или SysUtils то Nod32 затыкается. Но с ними прога в 5 раз больше по размеру.

Аватар пользователя darkcount
Не в сети
Новенький
Зарегистрирован: 08.02.2006
Сообщения: 41
Баллы: 43
Сраный nod32

У меня есть нормальная инсталяция NOD 32 работает отлично !

Аватар пользователя забыл_пароль
Не в сети
Гражданин
Зарегистрирован: 29.10.2005
Сообщения: 1414
Баллы: 1427
Сраный nod32

Ну, читай внимательней - неважно какой у тебя НОД. У меня тоже он "нормальный". Тоже работает "отлично", но оказалось, что он СЛИШКОМ осторожен. Читай внимательней. А вообще я совета просил, а не спрашивал у кого какой АВ.

Кстати, я нашел какбы решение. Подключил модуль SysUtils и всё заработало без Аларма (смешно правда?). Правда далее оказалось, что некоторые функции в процессе работы превращают мою программу в вирус (как его определяет нод - NewHeur_PE, т.е. имеет ввиду, что программа = джойн вирус, работающий с PE заголовком). Но я покрутил немного, добавил бессмысленных строк типа:

...<br />
const xb = 66;<br />
...<br />
  while length(p) < xb do begin<br />
    me.seek(pos,soFromBeginning);<br />
    me.read(d,1);<br />
    if (d <> 0) and (d <> 10) and (d <> 13) and (d <> 0) then p:=p+chr(d);<br />
    inc(pos);<br />
  end;<br />
  p:=copy(p,1,8);<br />
...<br />
  dec(d,d);<br />
  go:=true;<br />
  if d = d-d then go:=true;<br />
...
Все логичные способы обойти глупый антивирь не оправдали себя. Как и попытки пака, крипта, протекта и подделки PE заголовка.

Ирония такова - чтобы нод перестал плеваться в сторону моей программы, пришлось сделать её действительно PE-модифицирущейся Smile

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

Аватар пользователя GROM
Не в сети
Активист
Зарегистрирован: 18.12.2005
Сообщения: 2123
Баллы: 2411
Сраный nod32

А что за сервер ты вообще делаешь?

Аватар пользователя забыл_пароль
Не в сети
Гражданин
Зарегистрирован: 29.10.2005
Сообщения: 1414
Баллы: 1427
Сраный nod32

"GROM" пишет:

А что за сервер ты вообще делаешь?

Писал программу-сервер команд. Что-то вроде SSH, только на 80-м порту, под Win и без шифрования траффика Smile
Если кому интересно, я нашёл полу-решение:
Скомпиленый исходник почистил редактором ресурсов (что в принципе я всегда делал). Затем пробывал запаковываит и после этого пересобирать (размер ещё меньше становится), но Nod и на это не реагировал. Так же ему было глубоко по барабану, каким методом пака/крипта я пытался прятать от него программу. Видимо у него что-то вроде мини-вм, потому что простой дамп или отладка не сработали (я применял и антиотладку, и антидамп, и даже перехват АПИ на низком уровне). Потом, я решил попробовать один простой метод, с переброской OEP и добавлением нескольких ассемблерных команд, но Нод и тогда продолжал утверждать, что моя прога - Джойн-вирус Smile. Тогда я сжал программу простым UPX'ом и потом подменил сигнатуру, будто бы это flash-player. И это сработало. При минимальном размере, сервер сохранил всю свою функциональность и не напрягал Nod'а Smile Но весь прикол в том, что получилось это только 1 раз. При повторении всех действий результат - истерика у Нода Smile

Ещё прикол: до этого я переколбасил весь код, чтобы сменить направление соединения. А чтобы можно было убрать SysUtils и избежать возмущений у "мега-антивируса" нужно было объявить глобальную переменную x:pchar; а затем в определённом месте программы написать такой, абсолютно непонятно как влияющий на работу программы, код:

...<br />
try<br />
  freemem(x,[любое число]);<br />
finally<br />
end;<br />
...
т.е. нужно освобождать незанятую память Smile Повезло, что каким-то (тоже наверное чудесным) обзазом это не вызывало ошибки Smile

Короче говаря я пришел к выводу, что это огромный ГЛЮК в работе программы (оказывается бывают СЛИШКОМ осторожные программы). А ведь умные люди, к которым я обращался в процессе борьбы с НОДом говорили мне написать письмо с описаием косяков - но мне было и будет глубоко на***ть на этот антивирь (если теперь можно его так назвать) Smile

сказка нифига не ложь, но в ней намёк
всем программерам на заметку B)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".