Записать данные в чужой процесс не выделяя память

Тема в разделе "WASM.WIN32", создана пользователем Flasher, 17 ноя 2008.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Хочется узнать насколько это безопасно..
    Например через ZwQueryVirtualMemory найду свободный блок памяти нужного размера, изменю атрибуты на PAGE_EXECUTE_READWRITE, и запишу туда свой код.
    Что скажите?
     
  2. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Записать то ты запишешь... только вот где гарантия, что сама прога (владелец) этой памяти ее не перезапишет, единственный вариант, это найти свободные байти которые есть в конце секций, появляются они при выравнивании секции, но их бывает очень мало. Потому выделяй память!
     
  3. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    mrcrown, как оказалось - с выделенными памятями тож хлопотом хватает..
    Вот выделил достаточно большую область памяти в чужом адресном пространстве с помощью ZwAllocateVirtualMemory, и мне выдает ошибку -
    Как с этим быть ?
     
  4. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Flasher
    А Вы случайно BaseAddress и ZeroBits не выставляете? Лучше их оставить нулевыми.
     
  5. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    offtop//
    Endi
    У меня тоже было, ты целостность структур загрузчика нарушил. Отойду от торча посмотрим.
     
  6. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Код (Text):
    1.        mov CodeAddress,0
    2.        mov CodeSize,22222
    3.        push PAGE_EXECUTE_READWRITE
    4.        push MEM_COMMIT
    5.        lea eax,CodeSize
    6.        push eax
    7.        push 0
    8.        lea eax,CodeAddress
    9.        push eax
    10.        push ProcessHandle
    11.        call ZwAllocateVirtualMemory
    Вот :)
     
  7. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Flasher
    Не знаю. Не должен такой вызов мешать системным библиотекам. И уж тем более kernel32. Разве что вызывается это дело где-нибудь в перехватчике ZwCreateProcess, но тогда вопрос поставлен не совсем корректно.
     
  8. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Бери из лдр адрес и размер user32.dll, затем секцию кода найди(чтобы не юзать проекцию), после как граф. подсистема будет инициализирована указатель можно получить и без прохода, в XPSP2 там 98 сервисов, тоесть 98*4 << PAGE_SIZE, выделяешь одну страницу, заполняешь указателями на хэндлер. В нём NtSetInformationThread(ThreadHideFromDebugger). Тут кратко ввв.virustech.org/f/viewtopic.php?id=35 Они тогда большинство обломаются;
     
  9. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    l_inc, суспенденным запускаю процесс, и туда пытаюсь выделить память.
    CrystalIC, я так и не понял кого мы собираемся обламывать :)
     
  10. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Flasher Это у тя что-то бачинит! Какая ось?
    И еще, Какие права у приложения или может это драйвер? :)
     
  11. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    mrcrown, xp sp3 навороченный с прибомбасамы :)
    Права админские. Это обычное приложение..
     
  12. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Ты знаешь... Навороченность иногда оооооооооочень сильно влияет. попробуй это же приложение на другой системке, если не пробывал конечно.
     
  13. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    mrcrown, угу, так и есть, навороченность влияет, ибо на голой винде sp3 от msdn всё отлично работает. Вот хочется узнать - могет как-то моно справится с этим например манипулируя кешом памяти или наглухо отрубая DEP функционал..