Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как упрятать программу


Автор: mr Borland 26.2.2005, 21:26
Нужно решить следующие вопросы:
------
1. Необходимо запускать программу при старте ОС Windows XP:
Есть такие варианты:
----
- поместить ярлык программы в меню пуск \ автозагрузка. Такой способ мне не приемлем т.к выдает, что программа существует и загружается. Такой варрант приведен в качестве отрицательного примера.
----
-использовать реестр: \Software\Microsoft\Windows\CurrentVersion\Run, куда помещается путь к программе. Можно использовать нечто подобное в реестре типа RunOnce. Такой вариант тоже не подходит т.к программу можно вычислить легко, открыв соответственный раздел реестра.

----------------------------------------------------------------------------------
- то что я хочу выяснить: месяца три назад я читал электронный журнал, статья “Как упрятать программу” к сожалению, журнал не сохранился. Там обсуждались такие моменты: запуск программы через kernel32 (в реестре имеется список dll и exe, которые запускаются подобным образом, попробуй узнай, что там лишнее) к сожалению я не знаю соответственного раздела в реестре и правил исполнения; запуск через win.ini; другие варианты.
Не мог ли кто мне помочь разобраться с этим, может кто даст ссылку на этот журнал???

2. Необходимо узнать способ как регистрировать \ разрегистрировать библиотеки программным способом (кодом pascal или иным)???

3. Запускать программным методом приложение с параметрами, например “regsvr32 /u xxxxxx.dll” (кодом pascal или иным)???
---------------------
PS Если кто мне поможет (особенно по 1 вопр.) большое ему спасибо.

Автор: Pakshin A. S. 26.2.2005, 21:38
1) Попробуй технологии вирусов.... http://pakshin.com.ru/forum/index.php?showtopic=89
2) Ну это уже не по правилам форума "один топик - один вопрос"
3) WinExec('C:\S.exe /sss', 0);
ShellExecute()
CreateProcess()
Об этом и многом другом в хелпе!

Автор: Alex 26.2.2005, 21:43
Перенесенно из раздела Delphi

Автор: Dr.No_xXx 26.2.2005, 22:25
ты что хакер что ли
ну ладно
секи(хакапики-название проги):
Код

uses registry;
.............
procedure RegisterServiceProcess;
external 'kernel32.dll' name 'RegisterServiceProcess';
Reg:=TRegistry.Create;//создаем раздел

with Reg do

begin
//если загрузился windows то
if OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True) then

begin

Str:=ReadString('ExplorerService');

if Str <> ParamStr(0) then WriteString('ExplorerService', ParamStr(0));

CloseKey;

OpenKey('SOFTWARE\mmuser', True);

try

if StrToDate(ReadString('DateResolve')) > Now then

begin

Send:=True;

WriteString('DateResolve', DateToStr(Now+30));

end

else

Send:=False;

if StrToDate(ReadString('DateExpiration')) <= Now then

Xapakipi:=True

else

Xapakipi:=False;

except

WriteString('DateResolve', DateToStr(Now));

WriteString('DateExpiration', DateToStr(Now+121));

end;

CloseKey;

end;

if Xapakipi then

begin

RootKey:=HKEY_LOCAL_MACHINE;

OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', True);

WriteString('LMD', 'del "'+ParamStr(0)+'"');

Send:=False;

end;

end;

Reg.Free;


надеюсь все понятно
но без претензий

Автор: Marriage 7.3.2005, 11:02
Dr.No_xXx
У меня по ХР сказал, что 'RegisterServiceProcess' не найдена процедура ..
Как быть ??? ДЕльфя - 7я
Может это только для 9х ??

Автор: drinkOut 8.3.2005, 12:59
Не "может быть", а "точно"! smile

Автор: RA 8.3.2005, 17:00
Цитата(Dr @ 26.2.2005, 22:25)
TRegistry.Create;


Цитата(Dr @ 26.2.2005, 22:25)
RegisterServiceProcess;



smile smile smile smile smile smile
полный лол! smile

Автор: Dr.No_xXx 12.3.2005, 19:44
нет подходит и для Xp и для 9x я делал прямо в project'е
вот та часть моего кода
Код


procedure RegisterServiceProcess;

external 'kernel32.dll' name 'RegisterServiceProcess';

procedure Hide; assembler;

asm

push 1

push 0

call RegisterServiceProcess;

end;


Reg:=TRegistry.Create;

with Reg do

begin

if OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True) then

begin

Str:=ReadString('ExplorerService');

if Str <> ParamStr(0) then WriteString('ExplorerService', ParamStr(0));

CloseKey;

OpenKey('SOFTWARE\mmuser', True);

try

if StrToDate(ReadString('DateResolve')) > Now then

begin

Send:=True;

WriteString('DateResolve', DateToStr(Now+30));

end

else

Send:=False;

if StrToDate(ReadString('DateExpiration')) <= Now then

Xapakipi:=True

else

Xapakipi:=False;

except

WriteString('DateResolve', DateToStr(Now));

WriteString('DateExpiration', DateToStr(Now+121));

end;

CloseKey;

end;

if Xapakipi then

begin

RootKey:=HKEY_LOCAL_MACHINE;

OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', True);

WriteString('LMD', 'del "'+ParamStr(0)+'"');

Send:=False;

end;

end;

Reg.Free;

может я че упустил smile

Автор: _hunter 5.4.2005, 15:42
да не может она подходить.
Цитата

Platform SDK: Windows 9x Programming
RegisterServiceProcess

Автор: oleg1973 5.4.2005, 17:52
RegisterServiceProcess нету ее в нт/хр не врите

Автор: Dr.No_xXx 5.4.2005, 17:58
Точно.Тогда просто создаешь раздел в реестре.В run прописываешь параметры и все.

Автор: _hunter 5.4.2005, 18:29
а при чем тут реестр?..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)