Запуск .NET EXE сборки из памяти.

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Запуск .NET EXE сборки из памяти.

Сообщение jangle » 14.05.2009 (Чт) 11:25

Насколько я слышал, такое можно реализовать средствами .NET Framework.
Загрузить экзешник в переменную и запустить на исполнение, подскажите куда копать...
Или примерчик скиньте )))

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Запуск .NET EXE сборки из памяти.

Сообщение MIT » 14.05.2009 (Чт) 11:46

Думаю, что стоит начать отсюда.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Запуск .NET EXE сборки из памяти.

Сообщение jangle » 14.05.2009 (Чт) 11:56

MIT писал(а):Думаю, что стоит начать отсюда.


Спасибо за наводку. Байтовый массив должен быть юникодовым?

Можно ли запустить .NET приложение из Win32 экзешника?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Запуск .NET EXE сборки из памяти.

Сообщение MIT » 14.05.2009 (Чт) 12:08

jangle писал(а):Байтовый массив должен быть юникодовым?
Нет.

jangle писал(а):Можно ли запустить .NET приложение из Win32 экзешника?
Я где-то что-то читал про это... Поискать надо.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Запуск .NET EXE сборки из памяти.

Сообщение alibek » 14.05.2009 (Чт) 12:20

jangle писал(а):Байтовый массив должен быть юникодовым?

Ты сам понял, что сказал?
Lasciate ogni speranza, voi ch'entrate.

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Re: Запуск .NET EXE сборки из памяти.

Сообщение Ronin » 14.05.2009 (Чт) 12:54

alibek писал(а):
jangle писал(а):Байтовый массив должен быть юникодовым?

Ты сам понял, что сказал?


+1
С уважением,
Игорь Шувалов aka Ronin

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Запуск .NET EXE сборки из памяти.

Сообщение jangle » 14.05.2009 (Чт) 13:10

MIT писал(а):Я где-то что-то читал про это... Поискать надо.


Я тоже читал, но где хоть убей вспомнить не могу :(

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Запуск .NET EXE сборки из памяти.

Сообщение MIT » 14.05.2009 (Чт) 13:26

alibek писал(а):
jangle писал(а):Байтовый массив должен быть юникодовым?

Ты сам понял, что сказал?
А я понял. Ну догадался до того, что он имел ввиду :)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Запуск .NET EXE сборки из памяти.

Сообщение Williams » 14.05.2009 (Чт) 14:11

Того гляди, добрая половина перейдет на .NET :) Как одно время поговаривали - "Не буду ставить эту глючную xp" и топали ногой :mrgreen:
И вы думаете, что вас оставят в живых после прочтения этого поста?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Запуск .NET EXE сборки из памяти.

Сообщение alibek » 14.05.2009 (Чт) 14:15

Williams писал(а):Как одно время поговаривали - "Не буду ставить эту глючную xp" и топали ногой :mrgreen:

Кто говорил?
Это W2k был не без недостатков. А Windows XP изначально был удачной системой. А после SP2 так и вовсе стал замечательной.
Lasciate ogni speranza, voi ch'entrate.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Запуск .NET EXE сборки из памяти.

Сообщение jangle » 14.05.2009 (Чт) 14:24

Как можно узнать GUID класса System.Reflection.Assembly.LoadFrom ?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Запуск .NET EXE сборки из памяти.

Сообщение Williams » 14.05.2009 (Чт) 14:25

все равно было полно народу который утверждал, что эта система либо чрезвычайно медленная, либо несовместимая, неудобная и.т.д

Хотя и получила сразу своих приверженцев - ровно как и .net...
И вы думаете, что вас оставят в живых после прочтения этого поста?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Запуск .NET EXE сборки из памяти.

Сообщение Nord777 » 14.05.2009 (Чт) 14:31

Как можно узнать GUID класса System.Reflection.Assembly.LoadFrom
Тебе наверно нужен GUID mscorlib.dll в которой этот класс обьявлен.
BED7F4EA-1A96-11d2-8F08-00A0C9A6186D
Сам класс не имеет идентификатора.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Запуск .NET EXE сборки из памяти.

Сообщение iGrok » 14.05.2009 (Чт) 14:33

alibek писал(а):Это W2k был не без недостатков. А Windows XP изначально был удачной системой. А после SP2 так и вовсе стал замечательной.

Да ладно?

В жизни не испытывал проблем с винтукеем. Правда, w2k ниже SP4 в руках не держал, так что дело, наверное, в этом. :)

А вот XP до первого SP после установки и до полной смерти у меня жил не более двух суток. Рекорд был - около трёх часов. До установки какой-то не особо совместимой софтины.. Потом начал аккуратнее относиться к тому, что ставлю. И винда стала жить сутки-двое..
С первым SP всё стало более-менее прилично, вплоть до того момента, как отыскали дыру в RPC и появился MSBlast.
Со второго SP с ним стало можно нормально работать.
label:
cli
jmp label

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Re: Запуск .NET EXE сборки из памяти.

Сообщение Ronin » 14.05.2009 (Чт) 14:36

iGrok писал(а):
alibek писал(а):Это W2k был не без недостатков. А Windows XP изначально был удачной системой. А после SP2 так и вовсе стал замечательной.

Да ладно?

В жизни не испытывал проблем с винтукеем. Правда, w2k ниже SP4 в руках не держал, так что дело, наверное, в этом. :)

А вот XP до первого SP после установки и до полной смерти у меня жил не более двух суток. Рекорд был - около трёх часов. До установки какой-то не особо совместимой софтины.. Потом начал аккуратнее относиться к тому, что ставлю. И винда стала жить сутки-двое..
С первым SP всё стало более-менее прилично, вплоть до того момента, как отыскали дыру в RPC и появился MSBlast.
Со второго SP с ним стало можно нормально работать.


Поддерживаю, до SP2 XP была отвратительна
С уважением,
Игорь Шувалов aka Ronin

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Запуск .NET EXE сборки из памяти.

Сообщение jangle » 14.05.2009 (Чт) 14:38

Nord777 писал(а):
Как можно узнать GUID класса System.Reflection.Assembly.LoadFrom
Тебе наверно нужен GUID mscorlib.dll в которой этот класс обьявлен.
BED7F4EA-1A96-11d2-8F08-00A0C9A6186D
Сам класс не имеет идентификатора.


Нет, мне нужен GUID именно System.Reflection.Assembly.LoadFrom

Сам класс не имеет идентификатора.


Ну другие же имеют индефикатор, вот кусок хидера от PB.
Просто System.Reflection.Assembly.LoadFrom там не описан

Код: Выделить всё
' ########################################################################################
' Library name: mscorlib
' Version: 2.0
' Documentation string: mscorlib.dll
' Path: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb
' Library GUID: {BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}
' ########################################################################################

#Include Once "oaidl.inc"   ' For IEnumVARIANT interface

' ========================================================================================
' ProgIDs (Program identifiers)
' ========================================================================================

' CLSID = {4C3EBFD5-FC72-33DC-BC37-9953EB25B8D7}
$PROGID_SystemAccessViolationException = "System.AccessViolationException"
' CLSID = {C03880A5-0B5E-39AD-954A-CE0DCBD5EF7D}
$PROGID_SystemAppDomainManager = "System.AppDomainManager"
' CLSID = {3E8E0F03-D3FD-3A93-BAE0-C74A6494DBCA}
$PROGID_SystemAppDomainSetup = "System.AppDomainSetup"
' CLSID = {61B3E12B-3586-3A58-A497-7ED7C4C794B9}
$PROGID_SystemAppDomainUnloadedException = "System.AppDomainUnloadedException"
' CLSID = {682D63B8-1692-31BE-88CD-5CB1F79EDB7B}
$PROGID_SystemApplicationException = "System.ApplicationException"
' CLSID = {3FDCEEC6-B14B-37E2-BB69-ABC7CA0DA22F}
$PROGID_SystemArgumentException = "System.ArgumentException"
' CLSID = {3BD1F243-9BC4-305D-9B1C-0D10C80329FC}
$PROGID_SystemArgumentNullException = "System.ArgumentNullException"
' CLSID = {74BDD0B9-38D7-3FDA-A67E-D404EE684F24}
$PROGID_SystemArgumentOutOfRangeException = "System.ArgumentOutOfRangeException"
' CLSID = {647053C3-1879-34D7-AE57-67015C91FC70}
$PROGID_SystemArithmeticException = "System.ArithmeticException"
' CLSID = {676E1164-752C-3A74-8D3F-BCD32A2026D6}
$PROGID_SystemArrayTypeMismatchException = "System.ArrayTypeMismatchException"     

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Запуск .NET EXE сборки из памяти.

Сообщение Nord777 » 14.05.2009 (Чт) 14:46

Просто System.Reflection.Assembly.LoadFrom там не описан
Начнем с того, что LoadFrom - функция, а не класс. Класс - Assembly.
Щас прийду на работу - гляну.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Запуск .NET EXE сборки из памяти.

Сообщение Nord777 » 14.05.2009 (Чт) 16:42

Описание класса System.Reflection.Assembly
Код: Выделить всё
<Serializable, _
ClassInterface(ClassInterfaceType.None), _
ComVisible(True), _
ComDefaultInterface(GetType(_Assembly))> _
Public Class [Assembly]
....


Описание интерфейса System.Runtime.InteropServices._Assembly
Код: Выделить всё
<InterfaceType(ComInterfaceType.InterfaceIsDual), _
ComVisible(True), _
Guid("17156360-2f1a-384a-bc52-fde93c215c5b"), _
TypeLibImportClass(GetType(Assembly)), _
CLSCompliant(False)> _
Public Interface _Assembly
...
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Запуск .NET EXE сборки из памяти.

Сообщение jangle » 14.05.2009 (Чт) 16:46

Nord777 - спасибо! Яндекс только две ссылки вывел по строчке 17156360-2f1a-384a-bc52-fde93c215c5b

И одна из них на MSDN

Кстати, что значит фраза:
Этот интерфейс API CLS-несовместим.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Запуск .NET EXE сборки из памяти.

Сообщение Nord777 » 14.05.2009 (Чт) 17:30

Кстати, что значит фраза:
Цитата:
Этот интерфейс API CLS-несовместим.
Для тебя это не имеет значения.
Данный интерфейс предназначен для обеспечения доступа к управляемым классам из неуправляемого кода и не должен вызываться из управляемого кода.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5


Вернуться в Народный треп

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 52

    TopList