WScript.exe использование DLL без регистрации (manifest)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ALX_2002
Продвинутый гуру
Продвинутый гуру
 
Сообщения: 1993
Зарегистрирован: 25.11.2002 (Пн) 20:03

WScript.exe использование DLL без регистрации (manifest)

Сообщение ALX_2002 » 08.10.2017 (Вс) 1:24

Доброго времени суток, господа. Пришёл к Вам с вопросом о манифестах для COM DLL.

Есть необходимость использовать библиотеку для парсинга логов LogParser.dll от Microsoft. Создал манифест для Windows 7. С ним всё прекрасно работает, а на Windows 10 никак не хочет срабатывать (скрипт выдаёт сообщение о невозможности создать объект). После нескольких экспериментов перенёс WScript.exe из Win 7 на Win 10 и убедился, что с ним всё нормально срабатывает. Подскажите, пожалуйста, кто в теме - под Win 10 нужно как-то другим образом формировать манифест или вообще не получится такая затея ? Весь набор для теста прикладываю в аттаче.

P.S
Версия WScript.exe от Win 7 - 5.8.7601.18283
Версия WScript.exe от Win 10 - 5.812.10240.16384
Вложения
LogParser.zip
(623.88 Кб) Скачиваний: 10

Vi
Постоялец
Постоялец
 
Сообщения: 738
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение Vi » 09.10.2017 (Пн) 10:19

Твоя длл-ка - 32 разрядная. Похоже, что запускается 64-разрядная версия WScript.ехе, поэтому длл-ка не может быть загружена и объект не создаётся. Значит, нужно или иметь 32-разрядную ось, или запускать WScript.ехе из каталога \Windows\SysWOW64, который 32-разрядный.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

ALX_2002
Продвинутый гуру
Продвинутый гуру
 
Сообщения: 1993
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение ALX_2002 » 09.10.2017 (Пн) 12:57

Vi, благодарю за ответ, но не могу согласиться. Пробовал брать и 32-битную версию из SysWOW64 и 64-битную версию WScript версии 5.812.10240.16384. Манифест игнорируется ими одинаково. При этом если зарегистрировать DLL через regsvr32, то обе версии (32/64) WScript нормально отрабатывают создание объекта. Почему делаю вывод, что манифест именно игнорируется: Так как даже если его умышленно "испортить", то старый WScript 5.8.7601.18283 сообщает об ошибке манифеста, а WScript версии 5.812.10240.16384 продолжает выполнение скрипта и пытается создавать объект, хоть и безрезультатно.

Думаю причина в том, что в WScript версии 5.812.10240.16384 в ресурсы уже встроен свой манифест и потому он игнорирует внешний, а в WScript 5.8.7601.18283 внутри его нет. Попытка подменить его внутри файла, к сожалению, ни к чему не привела. Получаю всё ту же ошибку создания объекта.

Vi
Постоялец
Постоялец
 
Сообщения: 738
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение Vi » 09.10.2017 (Пн) 13:42

Я не рассматривал использование манифеста. Я просто говорю, что WScript версии 5.812.10240.16384 является 64-разрядным приложением и никак не сможет создать объект из 32-разрядной длл, потому что не сможет подгрузить эту длл к себе в адресное пространство.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

ALX_2002
Продвинутый гуру
Продвинутый гуру
 
Сообщения: 1993
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение ALX_2002 » 09.10.2017 (Пн) 15:59

Vi, да я понял о чём Вы говорите. Но ведь срабатывает и создаёт же. Я провёл тест (всё содержимое приложил в аттаче). В test.cmd сначала регистрируется библиотека, потом с помощью WScript x64 из того же каталога выполняется скрипт с созданием объекта и по концу выполняется удаление регистрации. Получается, что тогда WScript x64 создаёт некий мостик для запуска этой DLL ? Странно, почему тогда для 32-битного ScriptControl так не работает ? И кстати - как тогда работают OCX и DLL написанные на VB6 ? Они же тоже регистрируются и создаются в скриптах, не смотря на WScript x64 ?
Вложения
test.zip
(554.6 Кб) Скачиваний: 6

Vi
Постоялец
Постоялец
 
Сообщения: 738
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение Vi » 09.10.2017 (Пн) 16:57

Я посмотрел более подробно. LogParser.dll регистрируется как суррогат. Поэтому она может вызываться как из 32-, так и 64-разрядного приложения. Я не знаю, как такого поведения добиться через манифест.

PS
"как тогда работают OCX и DLL написанные на VB6 ?" Вот так и не работают, если не предпринимать спец. действий. Хотя, возможно, VB6 делает суррогат, но вроде наши приложения на VB6 сбиваются.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

ALX_2002
Продвинутый гуру
Продвинутый гуру
 
Сообщения: 1993
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение ALX_2002 » 09.10.2017 (Пн) 17:36

Vi, да, действительно. Сейчас проверил объект из Activex DLL (созданный на VB6) создаётся только через WScript x86.

Но пока вопрос остаётся открытым - почему же WScript x64 и x86 версий 5.812.10240.16384 игнорируют манифест. Из-за встроенного манифеста или по каким-то иным причинам ? И можно ли это исправить.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16030
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение Хакер » 10.10.2017 (Вт) 19:58

ALX_2002 писал(а):Из-за встроенного манифеста

Он там есть, ты смотрел?

Тупой способ: вырезать через редактор ресурсов.

Умный способ: профилировать вызовы к CoCreateInstance/CoGetClassObject и CreateActCtx, ActivateActCtx и посмотреть, в чём разница.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ALX_2002
Продвинутый гуру
Продвинутый гуру
 
Сообщения: 1993
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: WScript.exe использование DLL без регистрации (manifest)

Сообщение ALX_2002 » 11.10.2017 (Ср) 0:58

Хакер,

Хакер писал(а):Он там есть, ты смотрел?

Конечно смотрел. :D
ALX_2002 писал(а):Попытка подменить его внутри файла, к сожалению, ни к чему не привела. Получаю всё ту же ошибку создания объекта.

Как раз об этом упоминал ранее.
Вот что в нём написано:
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

    <assemblyIdentity version="5.1.0.0"
       processorArchitecture="amd64"
       name="wscript"
       type="win32"/>
   
    <description>Windows Based Script Host</description>

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="asInvoker" />
            </requestedPrivileges>
        </security>
    </trustInfo>
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!--This Id value indicates the application supports Windows Vista/Server 2008 functionality -->
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
            <!--This Id value indicates the application supports Windows 7/Server 2008 R2 functionality-->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
            <!--This Id value indicates the application supports Windows 8/Server 2012 functionality-->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
            <!-- This Id value indicates the application supports Windows Blue/Server 2012 R2 functionality-->           
            <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
            <!-- This Id value indicates the application supports Windows Threshold functionality-->           
            <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
        </application>
    </compatibility>
</assembly>


Пробовал заменить на такой:
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

    <assemblyIdentity version="5.1.0.0"
       processorArchitecture="amd64"
       name="wscript"
       type="win32"/>
   
    <description>Windows Based Script Host</description>

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="asInvoker" />
            </requestedPrivileges>
        </security>
    </trustInfo>
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!--This Id value indicates the application supports Windows Vista/Server 2008 functionality -->
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
            <!--This Id value indicates the application supports Windows 7/Server 2008 R2 functionality-->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
            <!--This Id value indicates the application supports Windows 8/Server 2012 functionality-->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
            <!-- This Id value indicates the application supports Windows Blue/Server 2012 R2 functionality-->           
            <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
            <!-- This Id value indicates the application supports Windows Threshold functionality-->           
            <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
        </application>
    </compatibility>

   <file name="LogParser.dll" hashalg="SHA1">
      <comClass clsid="{8CFEBA94-3FC2-45CA-B9A5-9EDACF704F66}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery" progid="MSUtil.LogQuery" threadingModel="Apartment"/>
      <comClass clsid="{6120A3D1-AD55-41F9-ADB0-7266E2623364}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.IISW3CInputFormat" progid="MSUtil.LogQuery.IISW3CInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{C13EDD32-5280-4F40-B002-A21F05219371}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.IISNCSAInputFormat" progid="MSUtil.LogQuery.IISNCSAInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{252A24E7-067F-4875-8510-7533F8B6915E}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.IISIISInputFormat" progid="MSUtil.LogQuery.IISIISInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{B331653F-522E-4FBD-BEA2-D47ED26DA8CC}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.IISODBCInputFormat" progid="MSUtil.LogQuery.IISODBCInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{A5BFDB31-5D80-4496-AF9C-79549E2F7BEC}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.IISBINInputFormat" progid="MSUtil.LogQuery.IISBINInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{4E1AD8B6-39B6-4802-90EF-B5D86774D815}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.IISIISMSIDInputFormat" progid="MSUtil.LogQuery.IISIISMSIDInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{F6751CB0-4CE6-4033-A489-5CC2D8C9D716}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.HttpErrorInputFormat" progid="MSUtil.LogQuery.HttpErrorInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{9BE3E5B2-BBC3-40BB-AAFE-C94DDA631D32}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.EventLogInputFormat" progid="MSUtil.LogQuery.EventLogInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{9A6E2BE0-96E4-4985-87AF-BDC668EA15A5}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.URLScanLogInputFormat" progid="MSUtil.LogQuery.URLScanLogInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{E17FE5B0-C2BC-4C97-8EBF-8EF2F763FCA8}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.TextLineInputFormat" progid="MSUtil.LogQuery.TextLineInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{0A402C88-0CEB-42C6-A15B-32AA45052706}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.TextWordInputFormat" progid="MSUtil.LogQuery.TextWordInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{BA8BAB06-715C-49F5-A94F-3E70B1CE38C6}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.FileSystemInputFormat" progid="MSUtil.LogQuery.FileSystemInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{4A1AAA95-FD08-449B-BD16-E87083D8F087}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.CSVInputFormat" progid="MSUtil.LogQuery.CSVInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{3ED0372B-4117-4CA3-A638-EF9BF3720248}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.W3CInputFormat" progid="MSUtil.LogQuery.W3CInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{3B942793-EEB0-41B8-BF12-4CD3EDDC9205}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.ETWInputFormat" progid="MSUtil.LogQuery.ETWInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{C17BDE3A-CDBD-45E0-9BCF-FD286A344EE8}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.RegistryInputFormat" progid="MSUtil.LogQuery.RegistryInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{FFB760AB-4ACA-4070-99D5-194D9272B47D}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.TSVInputFormat" progid="MSUtil.LogQuery.TSVInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{F2455538-58A0-45FF-B16C-5F5DBA8D811C}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.ADSInputFormat" progid="MSUtil.LogQuery.ADSInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{0173E9B3-19C1-4A25-995B-4B19EBD68025}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.NetMonInputFormat" progid="MSUtil.LogQuery.NetMonInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{0776E95A-34E3-4488-886E-094BA16BB6BD}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.XMLInputFormat" progid="MSUtil.LogQuery.XMLInputFormat" threadingModel="Apartment"/>
      <comClass clsid="{DEA6399C-EA9F-4864-BABB-0F6720A92CE1}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.NativeOutputFormat" progid="MSUtil.LogQuery.NativeOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{DC691F49-FD32-4E17-8C5F-F7C31F46FDF5}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.W3COutputFormat" progid="MSUtil.LogQuery.W3COutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{88937009-2404-483D-B6A7-49AA184426B9}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.IISOutputFormat" progid="MSUtil.LogQuery.IISOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{0FFF4843-4EAD-447C-8AA4-2D3BF639F5FC}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.SQLOutputFormat" progid="MSUtil.LogQuery.SQLOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{80C997CD-A676-4028-8860-BB5F2F8278F6}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.CSVOutputFormat" progid="MSUtil.LogQuery.CSVOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{29467682-1CFC-46EA-B64D-EB31A56B321D}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.XMLOutputFormat" progid="MSUtil.LogQuery.XMLOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{8235D6A5-AAFD-4D39-BFE8-EF1641AB9257}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.TemplateOutputFormat" progid="MSUtil.LogQuery.TemplateOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{8F054D20-354E-4A4D-92E4-10CDBA47D848}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.DataGridOutputFormat" progid="MSUtil.LogQuery.DataGridOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{2C4C2DB5-61C5-4D45-A66F-2071EC069328}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.ChartOutputFormat" progid="MSUtil.LogQuery.ChartOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{342148B3-7F11-4F39-A287-6829F83FABDA}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.SYSLOGOutputFormat" progid="MSUtil.LogQuery.SYSLOGOutputFormat" threadingModel="Apartment"/>
      <comClass clsid="{38E8C317-D7A1-49EE-8437-8DFE91462B1E}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" description="LogQuery.TSVOutputFormat" progid="MSUtil.LogQuery.TSVOutputFormat" threadingModel="Apartment"/>
      <typelib tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" resourceid="1" version="1.0" helpdir="" flags="HASDISKIMAGE"/>
   </file>
   <comInterfaceExternalProxyStub name="ILogQuery" iid="{3BDE06BC-89E4-42FD-BE64-832A5F33D7D3}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ILogRecordset" iid="{C9452B1B-093C-4842-ABD1-F81410926874}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ILogRecord" iid="{185FFF88-E24A-4984-9621-AA41BEAE8513}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ILogStringCollection" iid="{DA56E00E-E07C-4AB0-954E-0F901E9179A0}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMIISW3CInputContext" iid="{CC00A85E-22A3-4E73-8FA8-088EE78B1DC5}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMIISNCSAInputContext" iid="{C0B28DCB-F1D8-48A3-B4F4-FC28BEBA5EBA}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMIISIISInputContext" iid="{CB6A017F-69ED-48D2-8ED7-42B1BCB80844}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMIISODBCInputContext" iid="{ADE25553-5361-44BA-9270-31B08B4A8D6F}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMIISBINInputContext" iid="{F0FF3746-6CA6-4AB6-AE64-79A26FA82950}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMIISIISMSIDInputContext" iid="{55FCA9B8-56BB-479C-92C7-388011A6E45B}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMHttpErrorInputContext" iid="{3A698D1E-D6AE-46B0-B9F5-FA1C6F9092F4}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMEventLogInputContext" iid="{1D8AD32F-4DF0-41A7-AD76-8B3345EB1144}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMURLScanLogInputContext" iid="{9EBC373B-4E35-455A-8611-8A9ECE6689F5}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMTextLineInputContext" iid="{AF3F77B5-028D-4DE3-BDE7-8D84C30573C0}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMTextWordInputContext" iid="{BCE40C1E-DEE2-477A-B479-7E817D5446F3}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMFileSystemInputContext" iid="{76DDDBC5-5DFF-4A2B-9E09-4E1C26C6A938}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMCSVInputContext" iid="{80206B7F-6424-41FA-984C-7DBD92CE0C48}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMW3CInputContext" iid="{6642B90C-5D0B-4547-A67D-C844746E7C1C}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMETWInputContext" iid="{B53E5AF6-3D61-42B1-8F65-4F4F7368EC59}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMRegistryInputContext" iid="{09631558-6E49-4D0D-927F-628BA883CB1D}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMTSVInputContext" iid="{84C54BEB-D3C1-4E89-A868-F6F40B184D68}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMADSInputContext" iid="{85B21BA3-4271-4B10-A837-B715FDF3B0A1}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMNetMonInputContext" iid="{3837E95F-07DB-4D09-99CD-586B4E094208}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMXMLInputContext" iid="{72B09A81-FB17-4187-B5F8-AD7E9592548E}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMNativeOutputContext" iid="{1979F191-21AA-489D-BCDC-8CB6DC60AF42}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMW3COutputContext" iid="{9F3A6096-C1A3-428D-BE12-EEA7CDB3627F}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMIISOutputContext" iid="{7A5A3711-A707-4381-9C86-9ECADFB88975}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMSQLOutputContext" iid="{023D89CA-32BE-44DC-B442-478EC7478D62}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMCSVOutputContext" iid="{FB96582A-63D4-4564-A65A-26EB352734FA}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMXMLOutputContext" iid="{5481A119-1977-4190-B585-C62373A6A024}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMTemplateOutputContext" iid="{2547428D-535E-4467-9C0C-77511E47BE0D}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMDataGridOutputContext" iid="{2690326C-0A98-41A0-A53A-BE0D58F0E936}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMChartOutputContext" iid="{C0D19115-1C4F-4A49-A02C-60BF913BEFF9}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMSYSLOGOutputContext" iid="{B0936B89-8035-42CE-A33C-9E2E22DEADD2}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>
   <comInterfaceExternalProxyStub name="ICOMTSVOutputContext" iid="{8819BA1E-1931-4CCF-9F71-64547651AA54}" tlbid="{A7E75D86-41CD-4B6E-B4BD-CC2ED34B3FB0}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"/>

</assembly>



Хакер писал(а):Тупой способ: вырезать через редактор ресурсов.

Ну зачем же сразу тупой способ. Вырезать пробовал - не помогло. Пробовал править и через редактор и через утилиту мелкомягких. У консольной утилиты mt.exe от Microsoft есть прекрасная возможность импорта манифеста внутрь EXE / DLL / OCX.

И в MSDN есть даже мануал по импорту - Практическое руководство. Внедрение манифеста в приложение C или C++

Хакер писал(а):Умный способ: профилировать вызовы к CoCreateInstance/CoGetClassObject и CreateActCtx, ActivateActCtx и посмотреть, в чём разница.


Боюсь, что это я уже не потяну. :oops: Предполагаю, что для этого можно использовать одну из утилит Sysinternals типа Process Monitor. К сожалению, мне не хватает знаний для того, чтобы сделать выводы о результатах, которые она выводит.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing-бот, Google-бот, Majestic-12 [Bot] и гости: 9

    TopList