как найти DLL в памяти... походу какая-то защита стоит

Тема в разделе "WASM.RESEARCH", создана пользователем Atomic, 14 окт 2004.

  1. Atomic

    Atomic New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2004
    Сообщения:
    3
    Требуется найти загруженную DLL в памяти. Чтобы поставить там брейкпоинт в SoftIce... пробовал найти просто по комбинации символов - при любой попытке искать сочетание символов из этой DLL SoftIce виснет намертво. При поиске любых других последовательностей все ок... Ну ладно думаю.. Сейчас я ее найду.. Запускаю TaskInfo... и что я вижу... базовый адрес библиотеки 10000000 - короче лажа полная.. естественно по этому адресу ничего не обнаружилось... с такими-же подставными адресами видятся и все остальные DLL относящиеся к этой проге.. Так как-же мне найти РЕАЛЬНЫЙ адрес куда она загружается ??? может есть более продвинутые проги позволяющие просматривать адреса загруженных модулей
     
  2. LocTb

    LocTb New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2004
    Сообщения:
    54
    "...базовый адрес библиотеки 10000000 - короче лажа полная..."

    интеррресные соображения- можно поподробнее откуда?
     
  3. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Ein: внедряемся в чужой процесс

    Zwei: Делаем LoadLibrary (она типа уже загружена - ну и пофиг, нам только хэндл нужен)+GetProcAddress любой функции, экспортируемой из DLL

    Drei: пишем результат в файл, отправляем сообщением на деревню дедушке, создаем глобальный атом - короче, публикуем эти четыре байта в любом месте, откуда их потом можно будет достать. И достаем.
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    CyberManiac

    Твой вариант не годится - ему брейк нужно,

    а не коды из DLL. Хендл достается гораздо проще.

    Он же в SoftICE. Просто он "не наступил"

    на грабли :) Выдает PROC, затем ADDR

    и наслаждается видом DLL в 10000000 !

    Можно еще WinHEX использовать или PROCDUMP.
     
  5. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    А чем тебя не устраивает команда софт айса EXP?

    Если это твоя dll то занеси её в список загружаемых софт айсом dll-ок и перезагрузи машину.
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    ProgramMan



    Ты не понял. Я SoftICE нормально знаю.

    А вот Atomic "плавает".

    Он хочет отлаживать DLL в чужом приложении

    ( если я правильно понял ), но не может ее найти.

    Если он не может найти DLL в запускаемом EXE,

    ну "тогда я не знаю....". Хотя DLL может

    и динамически грузится. Тогда твой способ

    без моего все равно не подойдет.

    =============================



    А такой адрес вполне нормальный. Обычно

    его именно для динамических наверное и выбирают,

    чтобы далеко от программы ( 40000) и на залез

    на системные DLL (7e......).
     
  7. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    Вобщето я спрашивал у Atomic :)
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    А ему не надо. И откуда было видно, что у него

    спрашивал. Не ленись тюкать на имени спрашиваемого :)

    А с exp без addr не пройдет, если это не системная

    библиотека. Я в свое время много времени из-за этого потратил. Вот только недавно и узнал про контекст.

    Подвела привычка работы в ДОС - там адресное

    поле общее...