+ Reply to Thread
Results 1 to 9 of 9

Thread: Внедрить код из 32битного процесса в 64битный win7-win10

  1. #1

    Default Внедрить код из 32битного процесса в 64битный win7-win10

    Привет! Следует внедрить код из 32битного процесса в 64битный win7-win10. Как это можно решить?

  2. #2
    JKornev's Avatar

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10

    Добрый день, для этого скорее всего придётся использовать heaven gates, т.е. алгоритм примерно такой:

    * Вы не сможете загрузить 32-битный код в целевой 64-битный процесс, так как в нём нет 32-битной среды. Поэтому инжект возможен только 64 битного кода.

    1. Из 32-битного процесса переводим наш код в 64-битный режим используя jmp far с селектором 0x33 (гуглить heaven's gate wow64)
    2. Уже из 64 битного кода находим ntdll через PEB и ищем в таблицах экспорта нужные для инжекта функции (ZwAllocateWirtualMemory, ZwWriteVirtualMemory, ZwCreateThreadEx, etc)
    3. Открывает 64-битный процесс в который собераемся инжектнутся, используя найденные функции выполняем инжект
    4. Возвращаемся в 32-битный режим используя jmp fword [reg], где reg указывает на 48 битный адресс который включает в себя селектор 0x23

    Мне кажется я видел много примеров на github, но думаю большинство из них именно так работают
    High tech, low life

  3. Пользователь сказал cпасибо:
    Fa1RLiGHT (25-08-2017)
  4. #3

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10

    Thanks

  5. #4

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10

    Ошибаетесь, не отработает на 8.1 и 10.

  6. #5
    JKornev's Avatar

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10

    movl ну так будьте добры обоснуйте
    High tech, low life

  7. #6
    JKornev's Avatar

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10

    Quote Originally Posted by movl View Post
    Ошибаетесь, не отработает на 8.1 и 10.
    Всё отлично работает 7, 8, 8.1, 10 RS3
    High tech, low life

  8. #7

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10

    Quote Originally Posted by JKornev View Post
    Всё отлично работает 7, 8, 8.1, 10 RS3
    А можно на сам код взглянуть? Просто в вин 10 есть такая штука как CFG, вот она по моему мнению не даст этого сделать...

  9. #8
    JKornev's Avatar

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10

    Quote Originally Posted by movl View Post
    А можно на сам код взглянуть? Просто в вин 10 есть такая штука как CFG, вот она по моему мнению не даст этого сделать...
    Нет, я не могу вам открыть код, но я поясню ситуацию. Предполагаю вы имеете ввиду то, что описал Йонеску в данной статье: Closing “Heaven’s Gate”. Йонеску конечно уважаемый спец, респект и всё такое, но то как он описал матерьял в статье похоже больше на страшилки для детей (хакиров таким не напугать). Кратко суть в том что Microsoft ввели улучшения OS через механизмы CFG:
    1. С 8.1 upd3 WOW64 процессы имеют 2 CFG карты для 32-бит и для 64-бит, причём карта 64-бит не покрывает 32-битное пространство и наоборот
    2. С 10 свободное место в 64-битном регионе 32-битного процесса закрыто для выделения памяти, т.е. забито специальными регионами которые нельзя использовать

    Получается если вы запустите 64-битный код из 32-битного пространства, то этот код не пройдёт CFG валидацию. Но на хрена нам проходить валидацию? Никто не запрещает использовать системные сервисы Zw*, Nt* напрямую, для инжекта этого предостаточно так что пример который я привел абсолютно рабочий.

    Другое дело если вы захотите полноценно работать с ntdll из другой 64-битной библиотеки (регистрировать калбеки, получать APC) лежащей в 32-битном регионе, то что вам мешает в ntdll распарсить PE, найти Load Config Directory и пропатчить указатель ntdll!_guard_check_icall_fptr который ссылается на колбек проверки CFG :)

    Heaven's gate not dead mazafakas!
    High tech, low life

  10. Пользователь сказал cпасибо:
    gavz (29-08-2017)
  11. #9

    Default Re: Внедрить код из 32битного процесса в 64битный win7-win10


+ Reply to Thread

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:21
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org