1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Загрузчик win 10 x64

Тема в разделе "WASM.WIN32", создана пользователем sl0n, 15 дек 2020.

  1. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    676
    Кто нить в курсе что за данные нтдлл лоадер из рдата в кернел32 выгребает ?
     
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.481
    Загружает, на то он и загрузчик. Импорт собирает IAT.
     
  3. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    676
    Ладно давай к конкретике, я експериментировал с процесс холловингом, бере свцхост стартуем сапендед, мапим в него блокнот, их базовые адреса загрузки разные перестраиваем пеб на хедер нотепада и настраиваем регистры, отпусаем процесс на 7 и 8 x64 пашет и не лезет в кернел по тому адресу а в в 10 лезет, в пебе и тебе ни иата не импорта нет, вот как-то так
    --- Сообщение объединено, 16 дек 2020 ---
    Уточню там не импорты из кернела берутся, берется одна какая то странная переменная что за переменная так чтото и не понял но я не долго калупался, решил может кто сталкивался
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.281
    А что холловинг еще актуален? Он давно уже должен палиться всеми возможными аверами.
     
  5. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    676
    Ну с шаманьими плясками работает
     
  6. Indy_

    Indy_ Well-Known Member

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

    > берется одна какая то странная переменная

    А подробности есть, ида не находит динамик импорт по тегу кернел в 10-ке нэйтив.

    Но это 64 10. Быть может нэйтив достаёт старый вызов для инит кернел - BaseInit.. что то такое, это вызывал загрузчик на младших версиях при запуске.

    Код (Text):
    1. .text:00000001800D4140                 lea     r8, LdrpKernel32DllName
    2. .text:00000001800D4147                 xor     edx, edx
    3. .text:00000001800D4149                 mov     ecx, 4001h
    4. .text:00000001800D414E                 call    LdrLoadDll
    5. .text:00000001800D4153                 mov     [rsp+438h+var_3E8], eax
    6. .text:00000001800D4157                 test    eax, eax
    7. .text:00000001800D4159                 js      loc_1800D4283
    8. .text:00000001800D415F                 lea     r9, Kernel32ThreadInitThunkFunction
    9. .text:00000001800D4166                 xor     r8d, r8d
    10. .text:00000001800D4169                 lea     rdx, unk_180119330
    11. .text:00000001800D4170                 mov     rcx, [rsp+438h+var_398]
    12. .text:00000001800D4178                 call    LdrGetProcedureAddress
    - кроме этого нет ничего выборки, по крайней мере ида не находит. Это нужно смотреть в динамике.
     
    Последнее редактирование: 17 дек 2020