Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Вниз

Запуск EXE в контексте моей программы   Найти похожие ветки 

 
Topepo ©   (2006-02-26 15:38) [0]

Вобщем, сабж. объясняю ситуацию:
Есть моя прога, и левый екзешник в той же папке. Прога считывает екзешник в свою память. так вот вопрос: можно ли запустить этот считанный код, не создавая отдельный процесс ?


 
Джо ©   (2006-02-26 15:39) [1]

> Topepo ©   (26.02.06 15:38)

Можно я спрошу? Что такое "процесс" в вашем понимании этого термина?


 
Topepo ©   (2006-02-26 15:43) [2]


> Можно я спрошу? Что такое "процесс" в вашем понимании этого
> термина?

может быть я не так выразился.. ну что есть вообще процесс в винде ? определённый код, которому дали АП, зарегистрировали в винде и пустили на выполнение. мне вот этой регистрации не надо. а надо, чтобы везде числилось, что этот код выполнен от имени моей проги


 
Сергей М. ©   (2006-02-26 16:01) [3]


> Topepo ©   (26.02.06 15:43) [2]


> может быть я не так выразился


> ну что есть вообще процесс в винде ?


Да ничерта ты не понимаешь, "что есть вообще процесс в винде".

Бросай все свои плохопахнущие археологческине изыскания и ставь вопрос в лоб - "что есть ПРОЦЕСС в Винде"


 
grisme ©   (2006-02-26 16:07) [4]


> можно ли запустить этот считанный код, не создавая отдельный
> процесс ?


А как ты собственно "считал" в память код "левой" программы? По идее, можно конечно делать call <точка входа в подпрограмму> , но врядли "считанные данные" -процедура(?) Или я не понял вопроса...=\


 
Topepo ©   (2006-02-26 16:08) [5]


> Сергей М. ©   (26.02.06 16:01) [3]

Процесс – это запущенное приложение, которое содержит защищенное (принадлежащее только ему) виртуальное адресное пространство, куда загружаются код и данные. Процессу могут принадлежать некоторые ресурсы операционной системы, такие как открытые файлы, pipe-ы, синхронизирующие объекты (мьютексы, семафоры...), окна и т.п. Процесс также содержит один или более потоков исполнения (нитей), которые могут выполнять код, принадлежащий процессу. Процесс обязательно принадлежит некоторому logоn-у и также может быть ассоциирован с некоторой Windows-станцией.
(с) "Защита в DCOM".
Сабж остаётся в силе.


 
Topepo ©   (2006-02-26 16:11) [6]


> grisme ©   (26.02.06 16:07) [4]

я же говорю, у меня есть экзешник в папке с моей прогой (да не суть важно где он %) ), я его открыл и считал к себе в память побайтно. Подобную фишку я делал с DLL. считывал длл-ку и подключал её образ к другим процессам. только там сорцы не мои были, я в них не смог ещё разобраться :\
мне интересно просто, возможно ли такое вообще. а то не хочется копать впустую. ну исходники\линки\etc тоже бы не помешали %)


 
Сергей М. ©   (2006-02-26 16:11) [7]


> Topepo ©   (26.02.06 16:08) [5]


Ну и ?


 
Сергей М. ©   (2006-02-26 16:13) [8]


> Topepo ©   (26.02.06 16:11) [6]


Займись делом, а не идиотскими измышлениями.
Либо изобретай свою ОС.


 
Topepo ©   (2006-02-26 16:14) [9]


> Сергей М. ©   (26.02.06 16:11) [7]
>
>
> Ну и ?

что и ? я не собираюсь запускать приложение. мне нужно выполнить его код в своей программе. или ты про что ? :-/


 
grisme ©   (2006-02-26 16:15) [10]


> возможно ли такое вообще


В досе можно было просто править пару CS:IP и все. А под виндой такое НЕ прокатит...:) <если тока не перейти в приор.0-го кольца процессора>:) за этим вопросом - к кулхацкерам..


 
Topepo ©   (2006-02-26 16:16) [11]


> Сергей М. ©   (26.02.06 16:13) [8]
>
>
> Займись делом, а не идиотскими измышлениями.
> Либо изобретай свою ОС.

ты тоже мог бы заняться делом, а не писать всякую чухню в ответ. Причём тут идиотские измышления ? Стоит реальная задача. По ней есть несколько вопросов: решается задача\не решается и если первое, то как. ничего идиотского тут не вижу.
насчёт ОСи - самый вумные чугуний таскать будут, а так же могли бы и промолчать


 
Topepo ©   (2006-02-26 16:17) [12]


> grisme ©   (26.02.06 16:15) [10]
>
>
>
> В досе можно было просто править пару CS:IP и все. А под
> виндой такое НЕ прокатит...:) <если тока не перейти в приор.
> 0-го кольца процессора>:) за этим вопросом - к кулхацкерам.
> .

я умею переходить в нулевое кольцо %)
а теперь конкретнее ? ))


 
grisme ©   (2006-02-26 16:19) [13]

Ну попробуй теперь, "перейдя в нулЁвое кольцо" :) править регистр IP на адрес первого байта той кучи кода, что ты "считал в память"...:) <я не врубаюсь, ты чего, его просто в дин.массив считал что-ли?>


 
Topepo ©   (2006-02-26 16:22) [14]


> grisme ©   (26.02.06 16:19) [13]
>
> Ну попробуй теперь, "перейдя в нулЁвое кольцо" :) править
> регистр IP на адрес первого байта той кучи кода, что ты
> "считал в память"...:) <я не врубаюсь, ты чего, его просто
> в дин.массив считал что-ли?>

мм.. попробуем-с =)
как считал ?.. да по-простому. так же, как и в случае с длл. заваривал поинтер, выделял под него память, равную размеру файла, и считывал через функции CreateFile\ReadFile. всё оч просто =)


 
grisme ©   (2006-02-26 16:26) [15]

Хотя врядли тебе Дэлфай позволит править IP-она его просто-напросто "не знает" :) Ну, главное, я тебе сказал, куда копать...:) Посмотри в Debug"e там EIP изменяется с ходом программы, а ты его просто изменишь... ах да, если получится, вызови в конце своей "подпрограммы-мутанта" возврат Jmp. А то потеряется софтина...


 
Topepo ©   (2006-02-26 16:31) [16]

grisme спс за наводку, будем думу думать :)


 
n0name   (2006-02-26 18:59) [17]

>>Topepo ©   (26.02.06 15:38)
нет.
Даже переход в р0.
Даже написание своего PspCreateProcess.


 
nick denry ©   (2006-02-27 00:17) [18]

[9] Topepo ©   (26.02.06 16:14)

В принципе exe не сильно отличается от Dll. Можно скорее всего попробовать написать что-то типа своего загрузчика.

сходи на www.wasm.ru, может найдешь чего


 
n0name   (2006-02-27 10:08) [19]

nick denry ©   (27.02.06 00:17) [18]

> В принципе exe не сильно отличается от Dll

Конечно, только тем что для exe нужно не только промаппировать DLL, но и создать объект типа процесс.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.014 c
2-1146666776
De
2006-05-03 18:32
2006.05.21
Деструктор в DLL есть?


2-1146411533
Yo-yo
2006-04-30 19:38
2006.05.21
TadvMemo


2-1146553906
MST
2006-05-02 11:11
2006.05.21
Переменная сквозь модальные окна


2-1146661404
AlexanderMS
2006-05-03 17:03
2006.05.21
Проблема с ListBox


15-1145873028
Суслик
2006-04-24 14:03
2006.05.21
Кто ставил update 2 на bds2006?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский