MessageBox without import

Тема в разделе "WASM.X64", создана пользователем Mikl___, 5 фев 2025.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.898
    Marylin, не понимаю... Что-то рушится между вызовами find, edi привязан к реальным строкам rsi к r11 = NamePointers но ничего аномального не вижу :scratch_one-s_head:
     
  2. mantissa

    mantissa Мембер Команда форума

    Публикаций:
    0
    Регистрация:
    9 сен 2022
    Сообщения:
    170
    Можно скачать VirtualBox и туда windows 7 накатить, подебажить
     
    Marylin нравится это.
  3. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    249
    у меня на Win7 + x64dbg пациент вообще не открывается - даже до ЕР не доходит, и сразу ошибка. Можно только закрыть дебагер. А вот WinDbg открывает и позволяет степать до исключения AV. Поэтому на ВМ придётся только WinDbg ставить.
     
  4. k3rnl

    k3rnl Member

    Публикаций:
    0
    Регистрация:
    28 янв 2021
    Сообщения:
    65
    Наверное я ввёл в заблуждение по поводу LdrGetProcedureAddressForCaller (давно семёркой не пользуюсь, поэтому не проверил сразу).
    В экспорте ntdll.dll (6.1.7601) этой функции ещё нет, она появилась в Windows 10.
    Для Windows 7 нужно использовать LdrGetProcedureAddressEx.
     
    mantissa, Mikl___ и Marylin нравится это.
  5. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    514
    урря!
    пример tut_1e.asm наконец-то завелся

    https://prnt.sc/w9A-EPEy1CRH

    (тот что поменьше по размеру,
    побольше - тоже падает)
     
  6. Ahimov

    Ahimov Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    86
    Что то я вообще не понял, Как бы прежним постом ответил наверно на две темы, там товарищ пытается выгрузить юзер и какие то ошибки в загрузчике. Подумал а почему небыло ответа, затем внимательно уже посмотрел тот как назвать.. дебаг ручной вывод с ошибкой. Получается что падает не загрузчик, а шелл выше приведенный. Это я посмотрел разумеется, посмотрел как это делалось ранее, очевидной ошибки не видно, если сравнить с безотказно работающем шелл 86(те регистры сохраняются верно).

    В принципе если уж наверняка разобраться не имея динамик данных, это придется лезть в документацию формата, что делать не хочется.

    И вот интересно, на какой итерации ошибка. Была какая то особенность в некоторых либах, из за чего парс экспорта падал. Но не могу найти.

    Может подебажить и вставить лог на каждой итерации, выяснить причину?
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.898
    Если для Windows 7 нужно использовать LdrGetProcedureAddressEx и LdrGetProcedureAddressForCaller появилась в Windows 10, тогда попробуйте это
     

    Вложения:

  8. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    514
    Ура, пашет
    Via ntdll export: Addr = 000000007783A330 Name = LdrLoadDll
    Addr = 000000007777E2B0 Name = LdrGetProcedureAddressEx
    Via GetModuleHandle + GetProcAddress: Addr = 000000007783A330 Name = LdrLoadDll
    Addr = 000000007777E2B0 Name = LdrGetProcedureAddressEx
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.898
    alex_dz, Marylin, k3rnl,
    видимо и предыдущие должны были работать, если бы функция LdrGetProcedureAddressForCaller была в Windows 7, там, скорее всего, моя программа пробежалась по именам функций, но не найдя LdrGetProcedureAddressForCaller, подставила 0 вместо адреса.
     
    alex_dz, mantissa и k3rnl нравится это.
  10. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    249
    ну наконецто?...
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.898
    MessageBox без секции импорта, запущен через LdrGetProcedureAddressEx
     

    Вложения:

  12. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    514
    tut_01f.exe A/V
     
    Marylin нравится это.
  13. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    249
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.898
    alex_dz, что такое A/V? Audio/Video? Alcohol per Volume? Air Vehicle? Adult video? Ambulance Victoria? Access violation?
     
  15. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    514
    alcogol :)))

    шутки всторону ()
    Access Violation...
     
  16. k3rnl

    k3rnl Member

    Публикаций:
    0
    Регистрация:
    28 янв 2021
    Сообщения:
    65
    Mikl___, на ядре 10.0 как работало так и работает.
    Только почему-то Дефендер стал ругаться на tut_01f.exe
    1.png
     
  17. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    249
    да мой косяк, там есть счётчик на кол-во функций. нахр искать несушествуюшие функи
     
  18. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.898
    MessageBox без секции импорта
     

    Вложения:

  19. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    249
  20. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.898
    Тимур, это не прикол, это фича ;). Нет, конечно, я не знаю, как поведет себя программа в Win7. Я добавил вместо сравнения имен сравнение примитивных хэшей, а вот для RtlExitUserProcess мой хэш не годится, даже если сравнивать кроме хэша еще и длину названия функции, все равно происходят коллизии... Я не думал, что написание простой программы растянется на 3 страницы, но буду пробовать дальше...
     
    Marylin нравится это.