Внутренности GDI.EXE

Тема в разделе "WASM.BEGINNERS", создана пользователем Xerx, 4 янв 2008.

  1. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Есть %SYSTEM_ROOT%\system32\gdi.exe - программа для Win3.1. В нем есть очень мне полезные функции death и resurrection.
    Вот в чем проблема - как мне из вызвать на asm или C++?
    С другой стороны эти функции вызываются из под user.exe.
    А если уж совсем копаться, то я нашел пример работы с ними в Delphi:
    Код (Text):
    1. Отключение GDI:
    2. procedure Death(DC: hDC); external 'GDI' index 121;
    3. Включение GDI:
    4. procedure Resurrection; external 'GDI' index 122;
    И это работает! Я проверял в свое время.

    Подскажите, как можно добраться до данных функций?

    P.S. У меня XP SP2. Язык реализации - любой. Кроме Delphi )

    P.P.S. Может вызывать через "rundll32.exe,death" или нечто подобное.... Хотя плохо представляю как...
     
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    они есть в секции ЭКСПОРТА
    Экспортируются по ординалу.
    Смотри 121 и 122 ординал.
     
  3. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Magnum
    >они есть в секции ЭКСПОРТА
    ну не то написал, извиняюсь. подправлю сейчас.

    А как их подключить в run-tume? Индексы то я и так знаю - в коде Delphi они есть. LoadLibrary ругается.
     
  4. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    На что именно ругается? Каков код ошибки?
    попробуй

     
  5. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Magnum
     
  6. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
  7. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    ээ... Гхм... А попроще никак? :derisive:
     
  8. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    боюсь никак
     
  9. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    А вручную загрузить exe'шник и найти в нем точку входа в нужную мне функцию?
    Наподобие ручного поиска kernel32.dll в памяти и в нем нужной функции (где-то на сайты был такой пример).
    Или ересь говорю?
     
  10. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Если код 16ти-битный, то там по полной юзаются прерывания int 21h и иже с ними
    Подобный код вызовет ошибку под Вынь...
     
  11. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Magnum
    А я попробую ) Вдруг разберусь, что он там делает и смогу переделать. Вопрос открыт: как получить точку входа в данную функцию? Там уже мои проблемы...
     
  12. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    точка входа считается по экспорту
     
  13. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Если код 16битный, то он никак не уложится в 32х битные сегменты=)) проблема не в поиске функций руками и тд., проблема в том, чтобы заставить этот код работать. Если очень хочется, можно самостоятельно написать загрузчик, который будет грузить 16битный код в 16 битные сегменты. Но такой способ уже есть. ну а если уж очень трудно заюзать уже имеющееся, то тогда остаёцца толька разбежацца и убицца апстену=))))
     
  14. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    k3internal
    Я хочу посмотреть, ЧТО за код там выполняется. Если еще никак не перенести на 32битный - я успокоюсь и займусь делами поважнее )
     
  15. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Ну а в чем проблемы ? берёш иду и вперёд, реверсить.