как softice распознает расширение?

Тема в разделе "WASM.BEGINNERS", создана пользователем defaultplayer, 3 ноя 2006.

  1. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    Читал статьи mamaich-а, он про это ничего не говорит. Смотрел сорсы IceExt, единственное что нашел это переменную в которую ложится адрес некой функции pLoadKDE в теле софтайс, которая вроде бы как и загружает расширение. Нашел функцию, вызвал, - поток который вызывал входит в штопор в теле софтайс jump-ом сам на себя. Может кто-то разбирался, подскажите плз.
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    http://www.woodmann.com/forum/showthread.php?t=7097
     
  3. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    спасибо за ссылку, в английском не силен, поэтому пришлось с переводчиком страдать, единственное что понял, что в IceExt используется другая техника какая-то, в отличии от способа по ссылке, тоесть IceExt вызывается из ntoskrnl и DriverEntry принимает как обычно 2 параметра, после чего модифицируется тело софтайс и вообщем каким-то макаром софтайс распознает расширение. А по ссылке выше говорится, что DriverEntry вызывает сам софтайс с тремя аргументами, как длл, вообщем обязательным условием должен быть прием DriverEntry трех параметров, WinDbgExtensionDllInit в экспорте, модуль должен быть зарегин в реестре с зависимостью от NTICE. Вроде все понятно, за исключением самого главного, - как софтайс решает что именно этот модуль является его расширением и что надо вызывать именно его DriverEntry. Помогите разобраться ...
     
  4. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    просто когда запускаю свой модуль, и если софтайс не запущен, то сначало стартует он, но DriverEntry моего модуля все равно вызывается ntoskrnl и во втором параметре естестественно будет не DLL_PROCESS_ATTACH.