кто-нибудь ломал VMProtect

Тема в разделе "WASM.RESEARCH", создана пользователем avraam, 27 апр 2009.

  1. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    je_
    Ессно - ВМ то стековая :))
     
  2. reversecode

    reversecode Guest

    Публикаций:
    0
    avraam
    лучше ломай сам прот
    и восстанавливая его полностью
    а не ищи инфу, если и найдешь то старую
    никто с тобой своими наработками не поделиться ясное дело

    что бы поделились нужно было этим заниматься в далекие 2002-2004 года
    тогда бы попал в какую то комманду

    все оффтоп

    зы
    высказывания криса посмешили дааааа
     
  3. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Конечно ковырять вмпрот интересно , но не знаю как в курсе или нет сам dermatolog
    , но уже скоро ворвуться новые технологии виртуализации. Я говорил с одним профессором в Институте кибернетики , так вот модели виртуализации они строют уже давно и сотрудничают с компанией вмваре , так как их студенты ...кстатти они русские , пишут им новые коды. Смысл этих кодов прост , получилось сделать так что ВМ машины или реализации вм защит и так далее могут работать быстрее чем на обыкновенном компьютере с легкой оптимизацией по новой технологии примерно в 10 раз быстрее. Если используется более доскональная оптимизация то скорость работы максимально достигнута почти в 1000 раз быстрее.

    Все это базируется естественно на математике , и введением новых компиляторных техник. В инете инфы пока 0 ... почти 0 ... но уже скоро эти коды будут работать в вмваре , для повышения скорости работы виртуальных систем. Это означает лишь то что виртуальные машины как защита будут еще прогрессировать огого как. И при этом совсем не отстовать а даже перегонять обыкновенные проты по скорости выполнения.

    У технологии есть один минус ... он единственный =) но я не считаю его минусом ... скорость выполнения кода н вм останется более медленной , только на редко встречающихся блоках данных , но на совпадающих блоках данных и более часто использующихся скорость будет максимальна. Эта проблема решается сейчас ... в скором времени выйдет демонстрация этой техники.

    Когда dermatolog доберется до этой технологии , я думаю его прот как и многие другие по виртуализации , станут лидирующие на рынке , кроме этого модель вм эмулции будет координально изменена , поэтому ручаюсь что если проект не умрет , а врятли он умрет , то все нынешние декомпилеры просто выйдут в паблик , ибо толку от них уже будет меньше. Сегодня мы уже начинаем наблюдать процесс шевеления ... кто то смотрит дальше , кто то ближе , но все понимают то исход уже скоро , и много факторов на то влияют.

    В идеальном проте ..или точнее не идеальном .это слишком ) нет таких протов ... в современном проте будет и минус =) Этот минус заключается в том что паралельно с разработкой таких вм машин ведется разработка Кодоанализаторов построеных на тех же технологиях , они в сотни раз круче любого декомпилера , и делают такие чудеса , что трудно себе представить. Поэтому борьба между вм протами и крэкерами останется на том же уровне , ибо техники будут схожи ... тут уже пойдет фантазия и кто на что способен в плане реализаций.

    Но как показала практика такой кодоанализатор , пережевывает нынешние вм ....и выплеввывает абсолютно оптимизированный вариант , без мусора , а также с полностью переделанным кодом.

    Кто то скажет , вот это трудно такой код написать , труждно тогда когда не знаешь что да как , технологии уже есть , и они вырвавшись в масы принесут новое развитие компьютерных технологий.

    Поэтому dermatolog понимая это =) скажу ... оч повезло с выбранным направлением протов. Думаю твой продукт войдет в историю как начало прогрессивных технологий вм машин.
     
  4. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Боян, старфорс давно имеет свой собственный профилировщик, прогнав через который защищаемое приложение она получает инфу о времени выполнения отдельных частей кода, таким образом виртуализируется не все приложение, а только части которые требуют немного процессорного времени по отношению к другим.
     
  5. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Тоже ересь какая-то, вмпрот не первый протектор который использует вирт. машину.
     
  6. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    TSS Ты не в теме ... Техника совсем другая ... и используется в другом контексте .. речь вообще не об этом. А речь о том что любой вмный код будет быстрее процессорного в натуральном виде. Так что звиняйте =)
     
  7. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    О да, а ты в теме конечно же, особенно после вот этого перла:

     
  8. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    нуу..
    на данный момент VM-protect в другой галактике от оптимизаций
     
  9. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    кстати, dermatolog, щас усмотрел, что XCHG тоже виртуализуете;
    но оно имеет LOCK-ирующий!
    не правильно как-то..
     
  10. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    je_
    Ээээ. Вообще-то
    XCHG [mem],reg
    и
    LOCK XCHG [mem],reg
    это 2 разные команды. Вы про какую сейчас говорите?
     
  11. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    calidus
    > но уже скоро ворвуться новые технологии виртуализации.
    > Я говорил с одним профессором в Институте кибернетики,
    > так вот модели виртуализации они строют уже давно и
    > сотрудничают с компанией вмваре
    смешал все в кучу.
    *) варя не использует новых технологий виртуализации по целому ряду соображений о чем и объясняет у себя на сайте.
    *) "новые" технологии виртуалиции не новые. сроки патентов истеки просто. и они хлынули на рынок. технологии-то древние...
    *) никто не спорит, что можно построить виртуальную машину которая будет работать под процессором быстрее нативного кода, ес-но этот выигрыш дается не просто так, а за счет чего-то. например, резко возросшего потребления памяти;
    *) виртуализация (построение виртуальных машин произвольной архитектуры) и эмуляция (построение виртуальных машин на которых можно запускать уже существующий код) это перпендикулярные задачи;
     
  12. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    Предлагаю вашему вниманию кусочек декомпилированно-эмулированной функции (после 1-го прохода), работающей под VM. На втором проходе будет очистка от "мусора" и создание исходных asm команд функции, а в заключение - вставка asm кода туда, где он и должен быть.
    Интересует мнение - правильный ли я избрал путь и его реализацию.
     
  13. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    Vam
    Первый столбец это адрес пикода?
    Код (Text):
    1. 011BE132  7C             pop    eax                 ;771ED596             ;0x771ED596
    2.                          xor    [esp], eax          ;00000000             ;0
    3. 011BE133  A8             pop    eax                 ;00000000             ;0
    Если да, то я вас огорчу - это не VMProtect.
     
  14. je_

    je_ New Member

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

    ПРОЧИТАЙТЕ МАНУАЛ!
    XCHG И БЕЗ ПРЕФИКСА LOCK делает ЛОК.

    за спасибо, дайте нам авторские имена VM-хенлдеров ~:
     
  15. je_

    je_ New Member

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

    не понял ентот лог ваапше.
    сам exe файл тоже надо приатачить ведь..
     
  16. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    je_
    Про "Спинлок" вообще когда-нить слышали? Похоже что нет.
     
  17. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    причём здесь "Спинлок"?

    вы тоже с мануалами боретесь??
     
  18. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    je_
    Да при том, что там как раз используется LOCK+XCHG и поверьте - это не от балды сделано.
    Все наоборот - это вы их плохо читаете.
     
  19. je_

    je_ New Member

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

    Exchanges the contents of the destination (first) and source (second) operands. The operands can be two general-purpose registers or a register and a memory location. If a memory operand is referenced, the processor’s locking protocol is automatically implemented for the duration of the exchange operation, regardless of the presence or absence of the LOCK prefix or of the value of the IOPL. (See the LOCK prefix description in this chapter for more information on the locking protocol.)
    This instruction is useful for implementing semaphores or similar data structures for process synchronization. (See “Bus Locking” in Chapter 7 of the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A, for more information on bus locking.)
     
  20. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    je_
    Для тех кто в танке - объясню на пальцах:
    LOCK блокирует всю шину данных на период выполнения операции (независимо от количества процессоров). Без LOCK эта блокировка осуществляется только в пределах процессора, на котором она выполняется - соотвественно на многопроцессорных системах пример со Спинлок будет работать криво.
    Если с эти все понятно перейдем к нашим баранам:
    При виртуализации компилятор смотрит на наличие префикса LOCK у команды. Если LOCK есть - то команда не виртуализируется и будет выполняться в рантайме в том виде, в котором она представлена. Если LOCK нету - то значит пользователю пофиг на блокировку ячейки памяти и мы можем разбить эту команду на несколько мелких и выполнять их когда нам вздумается - причем блокировка памяти в пределах нашего процессора все равно остается. Между нашими "мелкими" командами не может вклиниться команда, которая читает или пишет в память.