Process

Тема в разделе "WASM.WIN32", создана пользователем hawk, 16 сен 2010.

  1. hawk

    hawk New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    155
    Здравствуйте.
    Кто нибудь знает где можно почитать про то как создать объект ядра-процесс.
    Собственно пытаюсь сделать свой CreateProcess, только из памяти.
    На сколько я знаю виндовский делает так:
    1.Находит указанный файл.
    2.Создаёт объект ядра процесс.
    3.делает маппинг этого файла.
    4.загружает его по необходимому адресу.

    вроде так.
    Я пытаюсь сделать чтобы процесс создавался из уже мэпированного файла(грубо говоря из памяти.)
    Но чего то нормальной информации о том как манипулировать с таким объектом ядра не нахожу.
    Может кто подскажет?
    Заранее благодарен.
    С уважением hawk3500/
     
  2. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    hawk
    так вам нужно создавать процесс из ядра или из юзермода?

    Если из юзермода то проще создать левый процесс замороженым, переписать его образ и отпустить.
     
  3. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    учим матчасть по PE загрузчику,импорты, релоки и т.д.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    не все так просто, я же тебе писал об этом... надо ещё регистры поправить... и ещё кстати с пебом есть некоторые проблемы... и вообще говоря, лучше не переписывать образ, а размаппить и замаппить на его место свой, так как потенциально возможны проблемы с памятью (например если новый образ больше старого)...

    надо бы еще зарегистрировать в csrss...

    хз... посмотри в сторону ZwCreateProcess, может там что-то найдешь...
     
  5. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    onSide, учимся читать :)
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
  7. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    litrovith
    всымсле? насколько я понял автору надо банально распаковать екзешник в память и запустить.
    Отмапить,пофиксать импорты релоки и т.д, настроить PEB. При чем тут объект ядра, тем более что тема в разделе WIN32.
     
  8. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Если он правильно выразился, то ему нужно отдельное адресное пространство. Хотя, возможно, он просто не совсем уверен, что ему нужно
     
  9. hawk

    hawk New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    155
    Именно так.
    Мне нужно отдельное адресное пространство.
    Общий смысл заключается в том что есть желание создать процесс который используя свои ресурсы(в которых содержаться скомпилированные exe файлы) умел запускать как отдельные процессы.
     
  10. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Т.е. в ресурсах лежат другие екзешники? Ну так дропни их на диск и сделай CreateProcess, чем не подходит?
     
  11. expert

    expert New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2009
    Сообщения:
    151
    hawk
    смотри сорцы win2k
     
  12. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    не подходит тем, что hawk'у видимо требуется написать новую, ультрамодную ацкую малварь))))
     
  13. hawk

    hawk New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    155
    Да не подходит по той причине что на диск кидать их очень не хочется.
    Ну на счёт ацкой не знаю)))))
    К ним это ну никак не относиться.
    С ними особых затруднений нет, а здесь скорее всего вопрос больше относиться к сфере безопасности кода.
    на счёт релокеёшенов......ну тут не совсем все просто на сколько я понимаю.
    Дело в том что exe пожаты(расжимать не вариант), а как в такой ситуации поступать с релокейшеноми я не в курсах.
    да смотреть то смотрел...только вот если построить этот механизм опираясь на сорцы допустим Win2k будет ли это работать в Windows7?
    Я на такой вопрос крайне затрудняюсь ответить..........
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    а никак ты их не настроишь, если секции с релоками нет... заливай образ по базовому адресу... в чем проблема то? есть канеш вариант взять базовый адрес и размер бинарника и пройтись по секциям в поисках двордов в интервале <базовый адрес> - <базовый адрес + размер>, но это - бред...

    кстати о малваре... лучше не держи PE-бинарщину в ресурсах, это самое очевидное... лучше уж в секцию данных положить...
     
  15. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Ну если вам охота заниматься подобным гемороем просто из-за того что "не хочется" это дело ваше))
    Какая безопасность? Вы думаете есть большая разница если возьмут ваш екзе с диска либо из ресурсов вытянут?
     
  16. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    да, нет никакой разницы... даже если бинарщина закриптована будет... самое клевое ухищерение, что я видел было: весь код и данные загрузщика и полезная нагрузка были в перемешку в одной секции, код по мере исполнения расшифровывал следующие блоки опкодов и данные... вообще, мне кажется, что сейчас уже пора обращать свое внимание на интерпретаторы байт кодов и встраиваемые виртуальные машины... имхо канеш...