Определение размера процедуры..

Тема в разделе "WASM.WIN32", создана пользователем unixoid, 17 мар 2005.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    unixoid

    > Aha :)))



    В таком случае делается проще..

    Сохраняются сигнатуры нужных функций для 2k и XP, соответственно по ним проверяется соответсвие функции заранее известному коду, а также место для безопасного патча будет заранее известно.



    А также можно поставить хук через таблицу импорта, всё зависит от того на какие API ставится хук.
     
  2. unixoid

    unixoid New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2005
    Сообщения:
    31
    Адрес:
    Ukraine
    Asterix

    Я же Уже писал,что через таблицу не идет - нажна 100% вероятность...А те функции,что я буду хучить ооочень изредка вызываются через эту таблицу..они даже не всегда вызываются даже через LoadLibraryA/GetProcAddress...и на прямую некоторые,те call _addr_...





    Они не всегда одинаковы для разных версий 2к\хр...или одинаковы? или мне брать каждую версию винды и под Идой\софтайсом смотреть что там те функции из себя представляют? :))



    Смотрел тот detours... спасибо...там та же идея,те двычисляем длинну инструкции и все,что более 5и байт суем себе в буффер или еще кудато...

    Так и сделаю..дасм до ума доведу и все;)
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    unixoid

    > А те функции,что я буду хучить ооочень изредка вызываются через эту таблицу



    Какие это функции? :derisive:



    > Они не всегда одинаковы для разных версий 2к\хр...или одинаковы?



    Думаю в большинстве случаев одинаковы для разных версий одной винды, будь то 2k или XP, между 2k и XP будут различия.

    Сколько тебе функций нужно 50? 100?

    Если не более 10-и то можно и в дизассемблере составить для каждой сигнатуру.
     
  4. unixoid

    unixoid New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2005
    Сообщения:
    31
    Адрес:
    Ukraine
    В том то и дело,что прога должна работать и на 2к,и на хр..и на нт4...



    Функции - на пример NtQuerySystemInformation LordPE вызывает не через таблу импортов... Или вирь один,не знаю как называется, гдет в рунете поймал..могу выложить сюда,если интересно...он адреса апи сам ищет,не используя таблов импорта и GetProcAddress...



    Я пишу либу,которая будет хучить и пременять ее буду х3 где...и ессно функций может понадобится разное колличество..
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
  6. unixoid

    unixoid New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2005
    Сообщения:
    31
    Адрес:
    Ukraine
    prosto eti liby uzhe vsem izvestnye i WinAPI oni ispol`zuyut....a moya liba budet tol`ko preryvaniya kernel`a ispol`zovat`...



    spasibo,posmotryu



    sam pishu...
     
  7. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    unixoid

    > moya liba budet tol`ko preryvaniya kernel`a ispol`zovat



    Тогда можно хучить функции в импорте kernel32, например Native API, изящно через таблицу иморта.
     
  8. unixoid

    unixoid New Member

    Публикаций:
    0
    Регистрация:
    2 мар 2005
    Сообщения:
    31
    Адрес:
    Ukraine
    Нужно,чтобы либа умела хучить любую функцию....И сама не использовала винапи функций... Типа ей(проце моей) даешь hProcess,hModule,hNameOfFunctionToHook,hMyObrabotchik :)

    И она возвращала адрес той функции,которую я хукнул или если хук не удался - возвратим 0.

    Вобщем дасм и эта вся бадяга уже готова...

    Большое спасибо всем!
     
  9. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Если кому надо, могу дать код определения размера процедуры на delphi, писал его для своей Api hook библиотеки.