Форум: "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