Вниз
Скачать: CL | DM;

Самоуничтожение программы   Найти похожие ветки 

← →
New Neon ©   (2004-07-25 00:25) [0]

Доброго всем времени суток. Дорогие програмисты не подскажете можноли создать самоудоляющиеся приложение (не исользуя реестр). Тоесть нужно создать прогу которая будет выполнятся только один раз (вроде тестового примера), а затем самоуничтожатся по её закрытии.


← →
Serge_   (2004-07-25 00:31) [1]

Есть такая интересная штучка как GlobalAlloc
так вот, если ты в память выделенную этой функцией закинешь свой код и сделаешь в нем FreeLibrary то модуль программы освободиться а код находящийся в памяти продолжит свое исполнение...
Это работает в W9x насчет NT не проверял...


← →
Юрий Зотов ©   (2004-07-25 09:40) [2]

В NT это работает точно так же, как и в 9x. Так что все ОК.


← →
Бином Ньютоныч   (2004-07-25 11:19) [3]

А что, через GlobalAlloc можно получить страницу с разрешением на исполнение? Как это сделать?


← →
Юрий Зотов ©   (2004-07-25 12:08) [4]

> Бином Ньютоныч   (25.07.04 11:19) [3]

Думаю, это станет ясно чуть позже...
:о)


← →
VMcL ©   (2004-07-25 13:55) [5]

>>Бином Ньютоныч  (25.07.04 11:19) [3]

Гы, нашел прямо в справке по GlobalAlloc.

Memory allocated with this function is guaranteed to be aligned on an 8-byte boundary. To execute dynamically generated code, use the VirtualAlloc function to allocate memory and the VirtualProtect function to grant PAGE_EXECUTE access.


← →
Бином Ньютоныч   (2004-07-25 15:23) [6]

>VMcL ©   (25.07.04 13:55) [5]

Дык то-то и оно. Не, можно конечно после GlobalAlloc изменить атрибуты страницы, но на кой это, когда можно сразу VirtualAlloc юзать?!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
14-1090433642
Случайно забежавший
2004-07-21 22:14
2004.08.08
Двоичный код


1-1090512497
ййй
2004-07-22 20:08
2004.08.08
Image


3-1089710228
Джон
2004-07-13 13:17
2004.08.08
INSERT записи из текстового файла


6-1086867946
_ice_
2004-06-10 15:45
2004.08.08
WNetCancelConnection2


3-1089556861
Piter
2004-07-11 18:41
2004.08.08
INSERT/UPDATE в одном флаконе




   Наверх