Современные решения

для защиты Windows приложений

и восстановления исходного кода

Обсуждение программирования на Delphi в конференции ru.delphi


Re: 1000 pаз в секунду

From: "Alexander B. Bokovikov" <bokovikov [@] apress.ru>


On Wed, 13 Jul 2005 11:15:35 +0400, "Vladimir I. Yankovsky"
<Vladimir.I.Yankovsky [@] p25.f23.n451.z2.fidonet.org> wrote:


>Таймер Windows не был создан с целью получения сверхточного хронометра. :-(


А как же мультимедийный таймер (из MMSYSTEM)?

Александр Боковиков
E-mail: bokovikov(a)mail.ru (дом.) abokovikov(a)apress.ru (раб.)
www.apress.ru/pages/bokovikov/delphi
* Origin: Demos online service (2:5020/400)

запустить процесс из службы

Приветствую, Tolik!

Однажды, 12.07.05 20:42:58, Tolik писал к Andrew O Shadoura
по поводу "Re: запустить процесс из службы".

TT>>> Боремся с запуском пользователем чего не следует?


AO>> Видимо да.


TT> Дык-ть, оно тривиально решается штатными административными инструментами

TT> Windows


Как выяснилось, нет. Производится не "борьба с пользователем" ;) , а просто
контроль за серваком. Сервак на Вин2003срв, на нем подняты Terminal Services,
так вот, в локальном режиме или при запуске удаленным пользователем моего
"энумератора" он работает как надо. Если же запуск происходит из сервиса -
ничего не работает вообще. Подробности:

>=== Cut === запуск из сервиса

=== 7/12/2005 10:39:04 PM===
=== Window Station found: WinSta0 ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: Service-0x0-3e7$ ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: Service-0x0-3e4$ ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: Service-0x0-3e5$ ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: SAWinSta ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: __X78B95_89_IW ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
>=== Cut ===


>=== Cut === запуск из командной строки удаленным пользователем

=== 7/12/2005 10:39:50 PM===
=== Window Station found: WinSta0 ===
=== Desktop found: WinSta0 ===
Start Menu
SysFader
Enumerator
temp
Services
AXWIN Frame Window
Command Prompt
Connections Tray
Power Meter
MS_WebcheckMonitor
JavaUpdate SysTray Icon
CtxRdpCtlsTitle
CtxRdpShellWindow
RDPClip - Receive Thread
RDPClip - Clip Thread
Program Manager
=== 7/12/2005 10:40:34 PM===
=== Window Station found: WinSta0 ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: Service-0x0-3e7$ ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: Service-0x0-3e4$ ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: Service-0x0-3e5$ ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: SAWinSta ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
=== Window Station found: __X78B95_89_IW ===
=== Desktop found: WinSta0 ===
Enumerator
=== Desktop found: Service-0x0-3e7$ ===
Enumerator
=== Desktop found: Service-0x0-3e4$ ===
Enumerator
=== Desktop found: Service-0x0-3e5$ ===
Enumerator
=== Desktop found: SAWinSta ===
Enumerator
=== Desktop found: __X78B95_89_IW ===
Enumerator
>=== Cut ===


-- С уважением, Andrew O. Shadoura

AKAs: 2:450/143.25, 2:450/202.25

* Origin: Errare humanum est (2:450/143.25)

1000 pаз в секунду

From: "Anatoly Podgoretsky" <anatoly [@] podgoretsky.com>


Hello, Alexander B. Bokovikov!
You wrote to Vladimir I. Yankovsky on Wed, 13 Jul 2005 13:13:51 +0000 (UTC):

??>> Таймер Windows не был создан с целью получения сверхточного хронометра.

??>> :-(


ABB> А как же мультимедийный таймер (из MMSYSTEM)?



Да кривая эта статья, возможно просто очень старая из времен Win16

--
С уважением,
Анатолий Подгорецкий

* Origin: Demos online service (2:5020/400)

Отладка

From: "Anatoly Podgoretsky" <anatoly [@] podgoretsky.com>


Hello, Alexey Cherepanov!
You wrote to Slava Antonov on Wed, 13 Jul 2005 09:47:42 +0000 (UTC):

??>>>> Ваш же пример некорректен, т.к. глобальные

??>>>> переменные всегда инициализированы.

??>>> Да? И позвольте узнать, кто же их инициализирует?


SA>> Компилятор.


AC> Оо,я отстал от жизни, пример привести можешь?


Очень отстал, а религия не позволяет взглянуть в сопроводительную документацию, для этого достаточно нажать F1. Стоит ли утруждать этим конференцию?

If you don't explicitly initialize a global variable, the compiler initializes it to 0.

--
С уважением,
Анатолий Подгорецкий

* Origin: Demos online service (2:5020/400)

Re: 1000 pаз в секyндy

Пpивет, Andrey!

12 Июл 2005 23:27, Andrey Ryazanov писал Vladimir Zaikin.

>> А Timer yже не подходит?.

AR> Сам то пpобовал? Он yже на 10 pазах в секyндy начинает сбиваться....

Таймеp окpyгляет свой пеpиод до кpатного 55 мс.

WBR, Alexei Ignatov.
* Origin: Hе плюй в колодец - вылетит не поймаешь! (2:5034/13.30)

Re: Как отловить начало pаботы с yдалённым подключением?

Пpивет, Andrey!

12 Июл 2005 23:34, Andrey Ryazanov писал Oleg Lazukin.

>> И я подyмал - вот было бы здоpово, если пpи начале дозвона она сома

>> как-нибyдь запyскалась :-) Видимо, невозможно в пpинципе.

AR> Кyльная пpогpамма видимо. Hоpмально написанная пpога с единственной

AR> целью -

AR> ожидание RAS подключения должна занимать менее мегабайта и 0% CPU.

Чем не катит банальный ICQ NetDetect? Или нyжно ждать именно RAS
подключение и забивать на все остальное?

WBR, Alexei Ignatov.
* Origin: Hе плюй в колодец - вылетит не поймаешь! (2:5034/13.30)

Re: Глобальные переменные (was: Отладка)

From: "Slava Antonov" <deadbeef [@] so.yandex.ru>


Hello Alexey Cherepanov, you wrote:

>> Компилятор.

> Оо,я отстал от жизни, пример привести можешь?


var
V: array[0..5] of Char = ('0', '1', '0', '2', '0', '3');

Данный массив будет в самом EXE, а при загрузке программы он просто спроецируется в память.

var
I: Integer;
В экзешнике соотвествующее место будет забито нулями.

Однако мне вот что интересно. Если объявить массив на миллион элементов. То в экзешнике он не хранится. Hо при загрузке все равно будет забит нулями.

--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)






Re: Отладка

From: "Slava Antonov" <deadbeef [@] so.yandex.ru>


Hello Anatoly Podgoretsky, you wrote:

> If you don't explicitly initialize a global variable, the compiler initializes

> it to 0.


Анатолий, а как дело обстоит с массивами? Как я понял место под них в экзешнике не резервируется.

--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)






Re: Как отловить начало работы с удалённым подключением?

From: Oleg Lazukin <oleg.lazukin [@] laposte.net>


Ответ на письмо от Andrey Ryazanov с темой "Re: Как отловить начало
работы с удалённым подключением?":

>Кульная программа видимо. Hормально написанная прога с единственной целью - ожидание RAS подключения должна занимать менее мегабайта и 0% CPU.


Я не говорил, что она делает только это. Это гибрид Net.Medic,
дозвонщика и учетчика времени в сети. Сейчас глянул - уже 8МБ| !

Bye ...
Oleg Lazukin.
oleglazukin(anti-spam)mail.ru

* Origin: JSC Rostovtelecom (2:5020/400)

Re: Как отловить начало работы с удалённым подключением?

From: Oleg Lazukin <oleg.lazukin [@] laposte.net>


Ответ на письмо от Slava Antonov с темой "Re:Как отловить начало
работы с удалённым подключением?":

>Это проблема вашей реализации. Потому что когда приложение (точнее, поток)

>вызывает одну из функций ожидания, оно/он засыпает и никакого процесорного

>времени не забирает. Это раз.


Если под словом "засыпает" подразумевается не реагирование на действия
пользователя - то это ему делать точно нельзя.

>Кроме того, вы можете создать минипрограммку, единственной целью которой будет

>- мониторинг соединений и запуск других программ.


Конечно думал об этом| Hо пока ничего конкретного не решил.
Может лучше всё оставить как есть и бороться со склерозом (т.е.
запускать нужную программу самому|)

Bye ...
Oleg Lazukin.
oleglazukin(anti-spam)mail.ru
* Origin: JSC Rostovtelecom (2:5020/400)