PE Loader и TLS

Тема в разделе "WASM.WIN32", создана пользователем jeer0, 8 дек 2017.

  1. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    178
    Indy_, я так понял это белоруский хумор)? Что за фэйк? Что за кум? Хорошо хоть без картошки =) Я потерял интерес к беседе в таком ключе.
     
  2. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    178
    Для тех кто решит использовать такую технику.
    По факту она рабочая. На всех виндах работает. Тестил 7-10 32/64.
    Из проблемных моментов - это работа в EPM. Имеется в виду митигэйшион на создание исполняемой памяти. Те отвал в ZwMapViewOfSection c флажком EXECUTE со статусом C0000604, ну и хуков на апи в нтдлл. Но это обходиться легитимными средствами как ни странно, если пореверсить ядро и посмотреть откуда там этот статус растет.
    Из неприятного.
    Тот же PcHunter видит, что есть хайджек модуля, который подменили. Но теперь после апдейта он не работает, так что пойдет.

    НО.
    Это всяко лучше чем смопальное говно. Всего просто не учесть. А так полный рантайм со сложным кодом работает без проблем. Что открывает перспективы к норм кодированию, без своих велосипедов, чисто энтерпрайз)
     
    Indy_ нравится это.
  3. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    1.516
    superakira,

    В ядре 8-ки данного статуса нет, как и на msdn. Последний там следующий:

    Но данный статус находит гугл как STATUS_DYNAMIC_CODE_BLOCKED. Это значит что система отклоняет запрос на аллокацию исполняемой памяти. Не вижу проблемы в этом случае.
     
  4. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    178
    Indy_, в какой-то 8 есть, точно уже не помню. голова кругом от этих ядер. в МС много разрабов, а я один)
     
  5. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    178
    Апну тему еще раз...
    не очень приятный момент с релокацие образа нтдлл - ибо аваст/авг и прочие ставят хуки и при релокации они тянуться с собой.
    Предпринял попытку взять чистый образ с диска, ручную загрузку чистого с установленными хуками и вызов LdrLoadDll уже там, но как всегда лулзы - так как хип не настроен и хэндл на него лежит внутри, то валится. остальное норм, до хипа не дотянуться портабельными средствами ибо он дергается в основном из Ldrp* (те не эекспортируется), дернуть стартовую для процесса не вариант. ибо там помимо хипа куча всего (для образа exe), проверил линейку ядер от 7 до последней 10... думал выцепить дизассемблером переменную из функи, но черт... сигнатуры плывут, код сильно меняется. Это не решение.
    Откатывать образ нтдлл уже загруженный не хотелось бы.. хотя.. в общем будет идея как дотянуться до хипа- маякните.
     
  6. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    1.516
    superakira,

    А что именно не так с нэйтивом ?
    Он не релоцируется, хоть имеет релоки на 86, но загружается первым и содержит глобальные указатели. На 64 rip адресация и релоки не нужны. Это значит что можно его копировать как строку.
    Сброс загрузчика необходим лишь в одном случае - это запуск образа с тлс. Но это очень плохой способ, отвалится многое. На 86 первый фейл будет при соеденении с csrss, повторное подключение невозможно.
     

    Вложения:

    • RPE.rar
      Размер файла:
      8,5 КБ
      Просмотров:
      5
  7. superakira

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    178
    Indy_, про то и речь. ты скопировл образ, вместе с хуками системных апи от ав.