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

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

  1. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    kaspersky
    Можешь ответить, как определить версию VM по коду?
     
  2. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Да саме подуймайте, реально. Если бы у кого то из народа был реальный рабочий декомпиль, то проги бы уже ламались с треском и шумом. Вспомните что было с аспром, когда его подломили, вспомните что было с ехекриптором? Снимали на заказ по счёту раз. Кряклаб гудел как пчелинный улей. А всё что есть в данный момент даже и намёка не даёт на то, что вмпрот побежден. Одни вопросы, что да как, и практически нет ответов. Поэтому говорю, что вы меня не убедили, пусть даже и не предоставив здесь доказательств живого антивмпрота.
     
  3. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    kaspersky
    Крис, народ тут не чайники собрались. Давай на чистоту. То что невозможно как ты говориш не спионерить, это есть старый добрый нужный софт, которому наверняка уже не один год, и версии его раз от разу всё краше и краше. А значит, что каието из них не были защищены в своё время протом либо были защищены не протом. А те что были накрыты протом, наверняка древней его версией, которую разворотили нафиг, во что я безоговорочно верю. Взять сэмплы и отследить код, а затем сравнить версии между собой (первые, промежуточные и последние) , накрытых протом, можно уже делать выводы о работе алгоритмоф, что в них изменилось и по имеющейся базе сопоставлений дописать (угадать) алгос последней версии. Ну а если софтина известная, то калупали её наверняка многие и результаты колупания наверняка имеются. Знаем мы это, плавали. Поэтому, данный эксперимент абсолютно ничего не докажет, так как не будет представлен как чистый. Поэтому, как я и говорил как то выше - вариант, написать некоторый код, накрыть протом и дать на растерзание. Иначе - бред сивой кабылы.
     
  4. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    k3internal
    Такое впечатление, что слова паблик и приват для тебя неизвестны.
     
  5. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    k3internal
    Зачем что-то специально создавать? - есть же демо версия самого VMProtect - чем не полигон для снятия демо ограничений?
     
  6. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    В таком случае толку от существвования такого декомпилятора практически ноль.
     
  7. je_

    je_ New Member

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

    PS. да, декомпиль = VMbytecode > asm
     
  8. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    Vam
    версию по коду? скажу честно, что никогда не задумывался над этим вопросом. оно вроде бы как мне было и не надо.

    k3internal
    > А всё что есть в данный момент даже и намёка не даёт на то, что вмпрот побежден.
    похоже, мы говорим о разных вещах. что значит "побежден"? если под этим понимать, что с помощью какой-то программы (пусть даже при участии рук и головы) слегка пошаманив можно отодрать защиту мунут за полчаса - ну так мыщъх этого никогда не утверждал.

    о том, что _в_ _принципе_ отодрать вм прот можно и это лишь вопрос времени и квалификации - вроде бы никто и не сомневается, ибо сломать можно все ;)

    кстати о птичках. о кряках я вообще молчал, а говорил о том. что вм прот не спасает от анализа алгоритма в целом и тут его защита достаточно слаба, чтобы остановить хакеров. под алгоритмом может пониматься как макро-уровень (какие апи прога вызывает и что она вообще делает) так и микро уровень - по типу анализа фильтра деинтерлейсинга, в котором одна сплошная математика полностью запротекченная вм протом. но вообще-то даже не будь она запротекчена вм протом - дизассмблер очень мало чем может помочь. попробуйте дизасмть... да хоть mp3 энкодер/декодер. и что это нам даст? даже если мы отождестим быстрое преобразование фурье (например), то вовсе не факт, что разберемся в особенностях его реализации, влияющими на качество звука и скорость кодирования. и тут по любому нужно подключать специальные средства анализа о которых я и писал выше.

    k3internal
    > В таком случае толку от существвования такого декомпилятора практически ноль.
    исключая тот факт, что кому-то он очень облегчает жизнь ;)
    у меня (как и других собравшихся здесь) есть свои наработки - ну типа скрипты, плагины и еще куча добра, которое не выкладывается в общий доступ. так же есть куча софта, можно даже сказать уникального, ну например дебаггер с возможностью бак-трейса. ломать в нем программы - ну так это за раз плюнуть. потому как нам не нужно искать перекрестные ссылки к диалоговому окну "Неверный пароль" - мы просто идем назад и смотрим ;) это ж просто фантастика какая-то. но дебагер не мой и распростанять его я не могу, а тот, кто мне его дал, тому я дал свою тулзу (деобфускатор), которая так же отсуствует на паблике. и вот таким образом люди меняются "закрытыми" наработками друг с другом. так что паблик не показатель. и не нужно говоить, что хакеры ссучились. то есть они ссучились конечно. раньше _все_ пытались создать что-то свое и все было ништяк. а сейчас в основном ищут готовых решений. причем набор скриптов для распаковки уже не устаривает. подавай гуевое окно с одной кнопкой.
     
  9. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Опа, кто-то сделал полноценную песочницу со снапшотами процессов и по тихой юзает ее в отладчике для бэктрейса !? :)
     
  10. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    kaspersky
    VMProtect использует три типа защиты:
    1. Мутация
    2. Виртуализация
    3. Мутация + виртуализация
    Под каждый тип защиты создается отдельная VM со своим набором команд, это так?
     
  11. je_

    je_ New Member

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

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    je_
    Тогда другой вопрос: зачем в исполняемом файле находятся три VM, по каким критериям протектор использует разные VM?
     
  13. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    Vam
    Начнем с того что в файле будут находиться столько ВМ, сколько ты укажешь в настройках. Для каждого блока кода с типом Виртуализация и Ультра выбирается случайная ВМ из общего числа и на этапе компиляции пикод создается под эту конкретную ВМ.
     
  14. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    я ваще думал што у ентого VM 256 опкодов.. но оказалось 47 в основном.
    Код (Text):
    1. AddByteByte_SS2
    2. AddDwordDword
    3. AddWordWord_SS2
    4. DIV6432
    5. Div168_SS2
    6. ExitVM
    7. IDIV6432
    8. IMUL3232_SS4
    9. MUL3232_SS
    10. MUL88_SS2
    11.  
    12. MovMemByteES_SA6 = MovMemByteSS_SA6 = MovMemByte_SA6
    13. MovMemDwordES_SA8 = MovMemDwordSS_SA8 = MovMemDword_SA8
    14. MovMemWordES_SA6 = MovMemWordSS_SA6 = MovMemWord_SA6
    15.  
    16. NotNotAndByte_SS2
    17. NotNotAndWord_SS2
    18. NotNotAndDword
    19.  
    20. PopBP
    21. PopEBP
    22. PopVmEIP_SA4
    23.  
    24. PopByteToInternalIMID_SA2
    25. PopWordToInternalIMID_SA2
    26. PopDwordToInternalOID_SA4 <16
    27.  
    28. PopfD_SA4
    29.  
    30. PushBP_SS2
    31. PushEBP_SS4
    32.  
    33. PushByteFromInternalIMID2_SS2
    34. PushWordFromInternalIMID_SS2
    35. PushDwordFromInternalOID_SS4 <16
    36.  
    37. PushByteIMS_SS4
    38. PushByteIMU_SS2
    39. PushDwordIM_SS4
    40.  
    41. PushMemByte_SA2
    42. PushMemByteES_SA2
    43. PushMemByteSS_SA2
    44. PushMemWord_SA2
    45. PushMemWordES_SA2
    46. PushMemWordSS_SA2
    47. PushMemDword
    48. PushMemDwordES
    49. PushMemDwordSS
    50.  
    51. PushWordIM_SS2
    52. PushWordIMS_SS4
    53.  
    54. RclDword_SS2
    55. RcrDword_SS2
    56.  
    57. SHLD_SA2
    58. SHRD_SA2
    59. ShlByte_SS2
    60. ShlDword_SS2
    61. ShlWord_SS2
    62. ShrByte_SS2
    63. ShrDword_SS2
    64. ShrWord_SS2
    65.  
    66. readRDTSC_SS8
    67. readCPUID_SS12
     
  15. kioresk

    kioresk New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    9
    Адрес:
    REVENGE Crew
    Либо ты не так выразился, либо ты немного путаешь.

    Если ты считал количество обработчиков (опкодов) в уже защищенном файле, то конечно их может быть и 47, т.к. это зависит от того какие команды в защищаемом файле были виртуализованы.

    В самом протекторе их больше 200 в зависимости от версии.
     
  16. dermatolog

    dermatolog Member

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

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    вы имеете в виду ЛОГИЧЕСКИЕ инструкции, которые VM виртуализует. так?
     
  18. kioresk

    kioresk New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    9
    Адрес:
    REVENGE Crew
    Ух ты, эк автору видать скучно, что он аж сам по своему проту отписывает. :derisive:
    Кстати, мне ваше творение очень понравилось, а потому, пользуясь случаем, заранее извиняюсь.

    Имелось в виду количества опкодов у виртуальной машины VMProtect'а.

    А сколько их будет в защищенном файле зависит о того какие x86 инструкции были в участках кода, который был вируализован.

    Ну например, если в завиртуализованном участке кода нет FPU инструкции FILD, то в сгенерированной ВМ ее тоже соответственно не будет, хотя изначально у ВМ для этой инструкции есть отдельные опкоды (VM_FILD_DWORD, VM_FILD_QWORD).
     
  19. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    не запутываете меня! ~: D

    нам нужно иденифицировать только рабочие функции-примитивы = хендлеры,
    чем работает VM и с помощью которых виртуализуется всё нужное.

    и с помощью которых мы восстановим правду.. :~)

    и так основных хендлеров 47. так?

    или же покажите те другие.
     
  20. je_

    je_ New Member

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

    а вот изза того что Esp не эмулируется в VM-регистрах, возможен облом!
    вот такой код не обламает програму, но VM обламается

    mov edx esp | sub esp esp | mov esp edx

    включи Esp в VM-регистры, потом продолжим анализ!