Pull to refresh

Comments 37

Ждём комментарии авторов. Интересно, такая слабая, можно сказать формальная, защита сознательный ход, типа всё равно сломают?
UFO just landed and posted this here
Судя по тому, что у автора статус регистрации почему-то генерирует программа clang.exe (которая никак в регистрации не участвует на самом деле), до реальной защиты он даже не добрался.
> которая никак в регистрации не участвует на самом деле

Откуда такая уверенность? У них вполне может быть своя сборка кланга, дополненная бледжеком и функциями участия в процессе регистрации
Замечание верное, но, в данном случае, достаточно запустить кланг с указанной опцией, чтобы понять, что не он выносит вердикт о корректности рег. данных. Автор просто спутал exe-шники.
Так просто? А я уже чаек принес :(

Бедные чайки, отпустите их.

С ildasm было бы хоть чуточку интереснее, dnSpy уже совсем ребячество…
уже много месяцев есть даже рабочий кейген в сорцах. Сразу было понятно, что авторы особо не собираются бороться с халявщиками (как и jetbrains, например). Потому что это отнимет больше сил, чем хороший маркетинг
Скомпилил кейген — и правда, работает. Вот разбор алгоритма кейгена бы с удовольствием почитал.
Ждем «Анализ dnSpy средствами PVS Studio»
Эй хакеры, подскажите как ключи распаковывать в ASProtect'e 1.2. А то я тоже хочу убрать защиту заменив формальной(глючит, зараза). А StarForce плохие люди — не говорят. Само собой все ключи у меня есть, я же сам её ставлю. Мне бы только информацию из ключа доставать.
«А это вообще законно?»

Учитывая политику лицензирования PVS-Studio, для них нет причин делать сильную защиту. Одинокие (грустно звучит) разработчики итак споконо могут использовать PVS, а корпоративные всё-равно купят лицензию, чтобы избежать попоболи. Так что не вижу особых проблем для разработчиков из-за столь простого взлома.
Я правильно понял, что минусы дотнета вылезли — простой реверсинг? Можно алгоритмы потащить )
Правда традиционно колет глаза :) Ничего, еще один акк заведу.
Да что IL, что Java — защиту сделать трудно. Так — для формальности.
Вот в нативном коде — это другое дело.
Самый сложный алгоритм видел в Word 5.
А почему вы думаете, что в нативном коде легко сделать защиту? Или по другому, почему вы думаете, что в нативном коде трудно разобраться?
Потому что возможностей больше в нативном коде.
Ну и примеры всякие смотрю иногда.
Ну да, интересное мнение основанное на том, смотрю иногда, что то. В С# например есть динамическая кодогенерация, вы даже не представляете, какие чудеса можно с ней сделать или думаете, что на управляемом коде нельзя свою VM написать? да без проблем.
Эм, не знаю как сейчас но года 2 назад смотрел интереса ради триалку для VS, имеющую ограниченное количество запусков. Там она просто в одной ветке реестра хранила счетчик запусков. Ушло минут 10 наверное на все про все.
У решарпера, по крайней мере 9го так же.
UFO just landed and posted this here
Для вашей программы требуется снять обуфскацию
Есть в паблике утилита https://github.com/saneki/eazdevirt
Она может вытащить код из виртуальной машины
С Уважением Mishar
Фиг там. Скорее всего, новая версия обфускатора, которую утилита не знает.

C:\2017-03-05>C:\2017-03-05\eazdevirt-master\bin\Debug\eazdevirt.exe -d TestConsole.exe

                         .___          .__         __
  ____ _____  ________ __| _/_______  _|__|_______/  |_
_/ __ \\__  \ \___   // __ |/ __ \  \/ /  \_  __ \   __\
\  ___/ / __ \_/    // /_/ \  ___/\   /|  ||  | \/|  |
 \___  >____  /_____ \____ |\___  >\_/ |__||__|   |__|
     \/     \/      \/    \/    \/



Unhandled Exception: System.Exception: Number of found subsequences (DictionaryAddPattern) 0 != 203 (expected value)
А de4dot её не берёт? Стабильная версия, правда, давно не обновлялась, лучше собрать свежий из сорцов.
Берёт, деобфускация генерит именам классов читаемые названия. Но не расшифровывает строки и не восстанавливает виртуализированный код машины протектора. Всё-таки это универсальный тул, а не заточенный на снятие конкретного протектора.

p.s. eazdevirt основан на dnlib, как и de4dot.
Эта версия старая и она не брет новый обновленный протектор, я лишь дал ссылку на исходный код который можно дописать под новую версию, а с de4dot не справиться с этим
Выше в комментариях правильно заметили: автор статьи сделал, по сути, косметический кряк. Ограничения при этом наверняка остаются, поскольку необходимо ломать не GUI, а консольную PVS-Studio.exe, в которой и сидит реальная защита.

На ру-борде это и проделывают с каждой выходящей версией.

Вопрос к автору: вы проверяли отсутствие триальных ограничений?
На разных система запускаются разные файлы там есть архитектура для системы X64 — X86
Запустите в ком. строке clang.exe с аргументом --checkreg=yes. Потом PVS-Studio с таким же аргументом.
Ну фу же. Нашли дырку — сообщите автору. Как исправят или проигнорируют — публикуйте. Неужели так сложно?

А тут — сломали гуй очевидным и скучным образом и побежали хвастаться тем, что сломали кусок необфусцированного кода… Детство какое-то.
Детство, не детство — а инвайт он походу за эту статью получил :)
шутка по теме
В магазин приходит маленький Мойше.
— Мне три литра мёда, протягивает он банку продавщице. Та наливает полную банку.
— А папа завтра придёт и заплатит.
— Ну нет, — забирает у него банку продавщица и выливает обратно мёд.

Мойше выходит на улицу и заглядывает в банку: — Папа был прав, тут хватит на два бутерброда.
Здравствуйте отвечу сразу всем в одном комментарии
1. Триал ограничения
Они все сняты так как в самом коде программы есть проверки на наличия триала вот в таком виде
image
Как ранее я показывал что через патч присуждает LicenseInfo.RegistrationStates.Valid значит где есть такие проверки везде программа пройдет как валидная без каких либо нареканий
На разных система запускаются разные файлы это я говорю про подпрограмму clang.exe там есть архитектура для системы X64 X86
Спасибо за понимание с уважением Mishar
Настоящие проверки не в Standalone.exe. Настоящие проверки в PVS-Studio.exe, которая написана на С++

программа пройдет как валидная без каких либо нареканий
Только визуально.
Извините, я не знаю, как ещё более понятно объяснить.

Вы взломали лишь один компонент программы, она теперь рапортует, что зарегистрирована, но триальные ограничения никуда не делись.
Продублирую тут свой ответ вам в личку, мне кажется, что читателям будет полезно:

Standalone.exe — С#, GUI-ёвая графическая обвязка вокруг консольной С++-ной PVS-Studio.exe.

Когда мы вводим имя и серийник в Standalone.exe, она просто их отправляет в консольную PVS-Studio.exe. Она их не проверяет на валидность. Не высчитывает, соответствует ли имя серийнику. В консольной части происходит реальная проверка, после чего консольная PVS-Studio.exe отправляет Standalone.exe ответ в духе «всё ок» или «всё плохо, серийник не валидный». И Standalone.exe просто проверяет, какой ответ ей пришёл: хороший или плохой. Чтобы показать статус регистрации. Т.е., можно провести такую параллель: Standalone.exe это что-то типа About, где выводится имя юзера. А вот консольную PVS-Studio.exe не патчили, она при каждой своей работе (при анализе исходников) проверяет валидны ли сохранённые серийник и имя. А так как они не валидные, то она урезает свою функциональность.
Sign up to leave a comment.

Articles