Да. Тогда что это за защита, которая обладает всеми известными свойствами VMProtect и аналогичной реализацией? А экзешник то зачем? Есть хешированный пикод исполняемый неким экземпляром виртуальной машины, эмулирующий защищаемую функцию или её часть, а само тело функции забито "мусором". Лог показывает выполнение расхешированного пикода виртуальной машиной.
Перепроверить что? Если пикод, так он хеширован, если реализацию команд VM - то это, конечно, возможно, только их интерпретация приведена в логе.
je_ Ваш multi-threading без LOCK на многопроцессорной тачке будет работать криво даже в виде натива (покурите мануал по LOCK+ пример по спинлоку). После того как понимание придет, прочитайте еще раз про алгоритм виртуализации из #100.
Vam Да вы видимо пикод от VMProtect никогда не видели чтобы сравнивать "аналогичность" реализации с этой поделкой ) P.S. Судя по наличию команд XOR SUB XCHG CMP в исполнителе ВМ в явном виде - это похоже на Code Virtualizer.
je_ Ну я не спорю что на вашей тачке работает все как надо, но как правило программы пишут так, чтобы они работали одинаково правильно на любом компьютере. Вот когда вы поймете что никто кроме вас не будет исправлять ваши баги в вашей программе, тогда глядишь и VMProtect заработает "правильно" с вашим кодом )
то есть вы признаете, что на ОДНОпроцессорке VMProtect будет портить дело и не будуте ентого исправлять изза (высокомерия!?)
А кто вам сказал, что эти команды в ВМ присутствуют в явном виде, столбик Command это интерпретация команд ВМ по возможности приближенная к ассемблеру. Вопрос скорее не в том, какая это защита VMProtect или Code Virtualizer или некоторые другие, работающие на своих ВМ, а в способе их устранения.
je_ Я вам еще раз повторю - никто ваши ошибки кроме вас исправлять не будет. Если вы не заботитесь о том, чтобы ваш код работал правильно везде (в том числе и на виртуальном процессоре), что почему это должен делать кто-то еще? P.S. Создается впечатление что вы начали играть в игру "сам себе злобный Буратина" и никак не можете остановиться. Я могу вам привести множество примеров когда нативный код будет работать не так как после виртуализации, но это не значит что в VMProtect там ошибка, а значит что разработчик просто "забыл" проинициализировать локальную переменную или думал что у всех тоже однопроцессорные тачки )
Vam А вы думаете зачем я вас спрашивал что у вас обозначает первый столбец? ) Как раз для того чтобы убедиться что это не "скрученный" пикод в х86 аналог. Вот ведь пример: Код (Text): 011BE132 7C pop eax ;771ED596 ;0x771ED596 xor [esp], eax ;00000000 ;0 011BE133 A8 pop eax ;00000000 (011BE133 - 011BE132) = 1 байт. Т.е. если бы команда "xor [esp], eax" была результатом свертывания пикода до х86 аналога, то разница былы бы намного больше - отсюда я делаю вывод что XOR (да и для остальных команд тоже самое) присутствует в исполнителе ВМ в явном виде (в принципе почти весь handler у вас уже и написан): Код (Text): VM_LOOP: ... VM_XOR: pop eax xor [esp], eax jmp VM_LOOP
je_ Мдяяя. Как там у вас всё запущено ) Погуглите фразу "сам себе злобный буратина" - потом поймете что я имел ввиду.
dermatolog, послушайте меня! значитЬ, команда XCHG имеет своё свойство (блокируещее); виртуализовав его, вы изъяли это свойство. ДА, вы руководствовались конкретным соображением. но и я показал вам НУЖНОСТЬ того свойства! если вы заботитесь о правильной работе ВАШЕЙ (а не чужой) программы, вы должны исправить этот факт, то-есть просто изять виртуализацию XCHG. в чём проблема??
ну и к кому это относится!? * Сам Себе Злобный Буратино (сокр. ССЗБ) — фразеологический жаргонизм, происходящий из компьютерной среды. Возник, по-видимому, в конце 1990-х в русском сегменте сети Фидонет, где получил широкое распространение. Возводится к фразе кота Базилио «Буратино, ты сам себе враг» в фильме. Наиболее часто она применяется для высмеивания профанов (чайников) в разных областях действительности, например эту фразу могут применить в ответ на воинственно безграмотные действия такого профана: «Ну и сам себе злобный Буратино». В настоящее время фразеологизм имеет некоторое распространение на различных форумах и в блогах Рунета.
je_ Т.е. вы уже согласны что использование XCHG без LOCK небезопасно в общем случае? Если бы вы внимательно прочитали #100, то смогли бы заметить что изъятие виртуализации XCHG получается путем добавления префикса LOCK. Вам добавить преффикс LOCK перед критичными XCHG/XADD/CMPXCHG религия не позволяет или все тотже злобный Буратина? ) Ну судя по SUB ESP, ESP и "если мая тачка ОДНОпроцессорная, то только ВЫ портите дело" все-таки к вам )
>>вы уже согласны что использование XCHG без LOCK небезопасно в общем случае? нет! я думаю, в юзермоде и nonshared_memory должно быть всё ОК! здесь только вы упорствуете : D, отвергая исправить исправимое. тогда давайте так: покянитесь(, что НЕ УБЕРЁТЕ XCHG виртуализацию, как-бы вас не попросили ваши кастомеры!!!!!!!!!!!!!