Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запустить процесс из Memory 
V
    Опции темы
12usver12
Дата 12.3.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



хочу написать что-то похожее на упаковщик исполняемых файлов,
допустим после всех действий я получил массив байтов распакованного
приложения, если кто знает как теперь этот массив байтов(приложение) запустить из памяти, а не сохраняя на диск и запуская оттуда ?
PM MAIL   Вверх
12usver12
Дата 13.3.2008, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



да никто наверн не подскажет... smile 
PM MAIL   Вверх
ivashkanet
Дата 14.3.2008, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата

public static Assembly Load(byte[] rawAssembly)

Loads the assembly with a Common Object File Format (COFF)-based image containing an emitted assembly. The assembly is loaded into the domain of the caller.
Parameters
rawAssembly
An array of type byte that is a COFF-based image containing an emitted assembly. 
Return Value
The loaded assembly.


PM MAIL WWW ICQ   Вверх
tol05
Дата 14.3.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



Цитата(12usver12 @  13.3.2008,  21:43 Найти цитируемый пост)
да никто наверн не подскажет... 

Отчего не веришь в наши силы smile , товарищ? 

ivashkanet, респект smile 

вот накопал пример здесь


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
12usver12
Дата 14.3.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



будем пробовать
Извините товарищи  smile 
я был не прав  smile 

Это сообщение отредактировал(а) 12usver12 - 14.3.2008, 13:36
PM MAIL   Вверх
ivashkanet
Дата 14.3.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



12usver12, мы по вечерам дома с женами, а не в инете на форуме smile 
Цитата(tol05 @  14.3.2008,  11:38 Найти цитируемый пост)
ivashkanet, респект

Стараюса
PM MAIL WWW ICQ   Вверх
12usver12
Дата 14.3.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



после многих попыток так и не получилось
все доходит до вот такого кода 
Код

FileStream fs = new FileStream(filePath, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
br.Close();
// load the bytes into Assembly

Assembly a = Assembly.Load(bin);

// search for the Entry Point

MethodInfo method = a.EntryPoint;
if (method != null) {
...
}
// create an istance of the Startup form Main method

object o = a.CreateInstance(method.Name);
// invoke the application starting point

method.Invoke(o, null);


который не работает и вот такой тоже
 ,

Код

 try
      {
         Assembly asm = Assembly.Load(pBuf);
         asm.EntryPoint.Invoke(null,null);
      }
 или может я чото неправильно делаю ?

Это сообщение отредактировал(а) 12usver12 - 15.3.2008, 12:15
PM MAIL   Вверх
altarvic
Дата 17.3.2008, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: 1
Всего: 1



Какой тип запускаемого приложения (managed/native) ? Этот код будет работать ТОЛЬКО с managed.
PM MAIL   Вверх
12usver12
Дата 17.3.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



вообщем и .Net сборки не запускаются и и не .Net  smile 
я так понял managed - это.Net ?  а native  это родные для процев ? 
PM MAIL   Вверх
ivashkanet
Дата 17.3.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(12usver12 @  17.3.2008,  09:13 Найти цитируемый пост)
вообщем и .Net сборки не запускаются и и не .Net 

1) не .net сборку даже не стоит пытаться так загруить! Там же написано: Assembly.Load() Единственно -- сохранить на диске, а потом с него, либо аналог Assembly.Load но для PE файлов (не знаю про такое)
2) Net сборки должны загружаться!
Цитата(12usver12 @  17.3.2008,  09:13 Найти цитируемый пост)
я так понял managed - это.Net ?  а native  это родные для процев ?  

Так точно.

Цитата(12usver12 @  14.3.2008,  22:17 Найти цитируемый пост)
который не работает и вот такой тоже

Какой эксепшен выкидывает?
PM MAIL WWW ICQ   Вверх
12usver12
Дата 17.3.2008, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



вот есть такая информация
и там есть пример  
и он рабочий проделываю подобные операции опять не получается.

вот такой эксепшн : "SetCompatibleTextRenderingDefault must be called before the first IWin32Window object is created in the application."

to ivashkanet не могу понять с твоих слов - ты хоч сказать что .Net екзешник из памяти вообще нельзя запустить ?

  
PM MAIL   Вверх
ivashkanet
Дата 17.3.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(12usver12 @  17.3.2008,  10:57 Найти цитируемый пост)
ты хоч сказать что .Net екзешник из памяти вообще нельзя запустить

Я хочу сказать что можно!
Цитата(12usver12 @  17.3.2008,  10:57 Найти цитируемый пост)
"SetCompatibleTextRenderingDefault must be called before the first IWin32Window object is created in the application."

Тогда сборка у тебя загружается, но вот энтри поинт вызвать не удается. И судя по всему потому что ты из WinForms запускаешь еще один WinForms и он ругается на это:
Цитата
"SetCompatibleTextRenderingDefault должен быть вызван перед созданием первого объекта в приложении"
 а у тебя, судя по всему, уже есть окна (главное приложение). Вот и ругается.

Старожил форума: Вопрос заявленный в теме решен. Разбираться с вызовом одного WinForms приложения из другого настоятельно рекомендую в другой теме!

PM MAIL WWW ICQ   Вверх
12usver12
Дата 17.3.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 5.1.2007

Репутация: нет
Всего: 1



Цитата

И судя по всему потому что ты из WinForms запускаешь еще один WinForms
 
так оно и было.
вопрос я думаю решен
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0807 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.