Дамп памяти в файл

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

  1. defrag

    defrag New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2004
    Сообщения:
    15
    Разбираюсь как работает одна прога.

    В процессе работы она скидывает в LPT порт примерно 4 кило из массива.

    Нужно эти самые 4 кило скинуть в файл.

    Пытался искать в экзешнике по первым 4 4 байтам - нигде нет. Вывод - либо генерирует, либо расшифровывает.

    Отсюда - самый простой способ заполучить эти байтики - сделать дамп памяти.

    Не подскажет ли всезнающий ALL, как такой провернуть в SoftIce или в TRW2000.
     
  2. MoKC0DeR

    MoKC0DeR New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2003
    Сообщения:
    136
    Адрес:
    Russia
    defrag

    Ставишь IceExt для SoftIce. Она позволяет скидывать дамп в файл (и не только это)
     
  3. valterg

    valterg Active Member

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



    В SoftICE выдаешь команду d

    вызываешь loader32 и сохраняешь протокол(history).

    А почему ты уверен, что это массив. Может прога

    его динамически генерит.....
     
  4. defrag

    defrag New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2004
    Сообщения:
    15
    2valterg

    Может и динамически, но ИМХО дамп скинуть проще.
     
  5. valterg

    valterg Active Member

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



    Динамически означает что никакого массива нет.

    Генерит байт - посылает, потом другой.

    Может там вообще не массив, а протокол

    обмена с электронным ключом ?!
     
  6. defrag

    defrag New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2004
    Сообщения:
    15
    2valterg

    Именно массив - я откопал процедуру, где прога его в порт побайтово посылает.
     
  7. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    defrag

    так вот. есть так называемые дебугерные регистры. их 4 штуки. Портоф для лпт всего три, так что, пишешь драйвер, соответствующим образом инициализируешь эти регистры и ловишь их на int 1. Вот и все дела.
     
  8. defrag

    defrag New Member

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

    Красивая идея. Респект
     
  9. valterg

    valterg Active Member

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




    Если ты уверен, что этот массив без

    изменений суют в порт, то останов

    в этой программе, команда d ( выдача памяти)

    и сохранение протокола. Ставить IceExt

    из-за 4 Кб нет резона. У меня он например

    глючит..... А запись протокола работает :)
     
  10. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    defrag

    а ещё возьми портмон Руссиновича, да погляди, если твоя прога юзает стандартный системный драйвер
     
  11. defrag

    defrag New Member

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

    Не, не юзает, она досовская

    и байты в порт посылает по какому то извращенскому протоколу, который не похож ни на byte mode ни на nibble mode.

    Есть процедуры передачи данных по EPP, но они начинают работать только после того, как указанный массив заслан в устройство.
     
  12. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Да я совсем забыл, нужно было дамп

    не в текстовом виде. Тогда либо IceExt,

    хотя для ДОС возможно и не подойдет,

    либо уже описанный метод + простенький конвертор.

    Либо WinHex (с ДОС-ом дружит)

    и возможно procdump.
     
  13. defrag

    defrag New Member

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



    именно так я и поступил :-D
     
  14. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    defrag

    дак какая разница, всё это пройдёт через стандартный системный драйвер
     
  15. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    defrag

    ну так а если под дос, то какая разница, процы пентиум уже предоставляют возможность отслеживать манипуляции с портами в реальном режиме, проще не бывает
     
  16. valterg

    valterg Active Member

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


    Процессоры позволяют, но вот SoftIce это

    умеет только в 98-м, а в 2000-м благополучно

    ничего не ловит. И bpint тоже не работает.

    Имеются ввиду ДОС-программы.

    CARDINAL может ты знаешь в чем причина ?!
     
  17. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    Если ничего не ловит, то есть на то интелловские мануалы, пример для доса по отлову портов смотреть в книжке Криса Касперски Техника и филосовия Хакерских Атак, первое издание, и, ещё, про айс, ты глянь в регистр CR4, там кое какой битик должен быть поднят.
     
  18. valterg

    valterg Active Member

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




    Мне не ДОС нужен, а ntvdm вообще-то. В ДОС-е

    у меня проблем не было.

    Про CR4 я прочел и даже пропатчил SOFTICE(4.27).

    Более того - посмотрел регистры прямо в месте

    останова. Все ОК, но порты не ловит.

    Дело именно в ntvdm, т.к. в самом W2K

    я ловил обращения к LPT.

    Может в 4.31 исправили уже, но мне пока

    не до ДОС.
     
  19. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    valterg

    Ну, тада не знаю, что тебе ещё посоветовать, пробуй сам руками, пиши дравер, вешай на int #DB, правильно инициализируй отладочные регистры и всё должно работать, такого не бывает, что бы не работало. так что, дерзай.
     
  20. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Не переживай. Я просто 98-й загрузил

    и нашел все обращения к порту, а потом

    просто поставил бряки в этих местах.

    Да и задачка не моя. Мужик попросил

    и сгинул куда-то :)

    Можно еще попробовать в Virtual PC

    это все провернуть, но SoftICE капризничает.

    В WIN2K в самой системе не работает, а процесс

    загрузки отлаживает прекрасно :)

    А совет по поводу драйвера Diamond для

    SoftICE под Virtual PC я не смог применить -

    ну нету у меня его в списке :-(