Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Закрытие одной программы из другой...

Автор: Johns 29.04.2006 15:21

Всем здрасьте!

Есть одна прога(неважно какая, назовем её Prg) и другая (RegMon)...
При запуске Prg принудительно закрывает RegMon(а также и FileMon)....

Вопрос такой:

Каким образом (с помощью ещё одной проги) не допустить закрытие "мониторов"?
Либо как сделать, чтоб Prg не могла обнаружить "монитор"(как я понял - она хендлерам определяет?)? (без изменения этих программ)



Заранее благодарен!

Автор: hardcase 29.04.2006 16:45

закрытие программы может произойти, если получить хэндл на процесс с правом доступа PROCESS_TERMINATE. Иначе TerminateProcess не сможет выполниться.

Значит, мы должны создавать процесс (наши мониторы) со специфическими параметрами безопасности.

Не позволить обнаружить монитоы некоторой программы в принципе не возможно - есть специальные API, с помощью которых можно перечислить все процессы в системе.

Автор: Malice 29.04.2006 18:08

Самый простой способ - пропатчить мониторы. Ищеш в экзешнике строку "REGMON" и меняешь на что-нибудь другое. Ну и переименовать на всякий случай.

Автор: Johns 1.05.2006 4:05

Цитата(Malice @ 29.04.2006 17:08) *

Самый простой способ - пропатчить мониторы. Ищеш в экзешнике строку "REGMON" и меняешь на что-нибудь другое. Ну и переименовать на всякий случай.


Не помогает...
в файле только три подходящих выражения Regmon, при изменении двух из них он начинает матькаться, а третий выглядит так:

Код

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    name="Regmon"
    processorArchitecture="x86"
    version="4.33.0.0"
    type="win32"/>
<description>Registry Monitor</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>


при его изменении ничего не происходит...

а выражения Regmoon нет вобще...

Автор: hardcase 1.05.2006 16:11

Цитата(Johns @ 1.05.2006 1:05) *

третий выглядит так: ...

Это XP-манифест. Нужен, чтобы виндусовские темы были применимы к программе (тип ресурса - 24)

Автор: Malice 1.05.2006 21:09

Цитата(Johns @ 1.05.2006 1:05) *

Не помогает...

Тогда Вариант №2: если он его находит по названию окна, то находить в мониторе строку
"Registry Monitor - Sysinternals: www.sysinternals.com" и забиваешь другой строкой.
Если не получится-пиши, а лучше скажи, что за прога.