Эмулятор процессора x86 как универсальный распаковщик

Тема в разделе "WASM.ZEN", создана пользователем Mantrid, 26 авг 2006.

  1. Mantrid

    Mantrid New Member

    Публикаций:
    0
    Регистрация:
    15 май 2006
    Сообщения:
    15
    Чатал много статей, посвященных снятию навсеных пакеров\криптором с использованием отладчика. А если для этих целей использовать не отладчик, а запускать подопытную программу под эмулятором процессора, т.е. пошагово эмулировать выполнение всех процессорных команд подопытной программы?
    Теоретически это дает много преимуществ, среди которых:
    принципиальная невозможность обнаружения отладки подопытной программой,
    полный контроль над выполняемой программой,
    набор воздействий на подопытную программу ограничен только фантазией исследователя,
    подопытная программа может использовать отладочные регистры процессора и прочие антиотладочные приемы без вреда для виртуального процессора.

    Имеет ли смысл разработки подобного эмулятора?
    Может такой эмулятор уже существует и я изобретаю велосипед?
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Mantrid
    Не надейся. Все эти эмуляторы определяются с таким же успехом, как и дебагеры.
    Вернее тем на что у тебя хватит сил.
    Да есть эмулятор bochs, правда отладочные средства у него убогие.
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Отвергая предлагай! Как?
     
  4. Rustem

    Rustem New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    429
    Адрес:
    Russia
    Один из способов детекта VMVARE по её стандартным дровам
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    EvilsInterrupt
    Я не отвергаю. Я только информирую. Метод один: шлифовка дебагера или отладчика.
     
  6. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    EvilsInterrupt
    Скорость выполнения ;)
     
  7. PE_Kill

    PE_Kill New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2006
    Сообщения:
    107
    Треды, дебаг апи, несколько процессов, самомодификация кода и много много еще чего.
     
  8. Mantrid

    Mantrid New Member

    Публикаций:
    0
    Регистрация:
    15 май 2006
    Сообщения:
    15
    Если честно, ожидал более оптимистичных заявлений на этом форуме. В принципе существует рабочая версия эмулятора (после достижения нужного результата бросил этим заниматься из-за нехватки ресурсов). По классификации эмуляторов из какого-то умного журнала мой эмулятор можно отнести к перпроцессным (эмулируется выполнение отдельного процесса), в работе используется стандартный debug api (в основном для доступа к памяти подопытного процесса).
    Теоретически в моем случае отладку можно определить по флагу трассировки, функцией IsDebuggerPresent, по значению FS:[18H] (точно не помню адрес). На практике упаковщик от Sentinel никакого неудовольствия от эмулятора не выказывал :) , про AsPack я вообще молчу.

    на подмену значений из памяти, API шпион и автоматизированный поиск OEP сил хватило :)
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    ну тогда выкладывай свой проект на http://www.sf.net/ и развивай ;)
     
  10. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Следует различать эмуляцию и виртуализацию.
    vmware - это "виртуализатор", большая часть кода виртуальной машины выполняется непосредственно процессором, соответственно полного контроля над каждой инструкцией нет.
    Из эмуляторов, кроме boch, для таких целей можно попробовать simics - относительно быстрый, неплохие возможности для отладки.