
Комментарии 12
Плюс на форуме верно подметили, что в предыдущей статье я менял переход с условного на безусловный, хотя для логики лучше железобетонно переходить на нужный адрес, то есть использовать jmp. Очень верное замечание, так и поступлю в этот раз.
Тут что-то непонятное написано -- jmp это же и есть безусловный переход, если вы не него и меняли, то что вам еще советовали?
А вообще, интересно, как пишутся такие защиты. На хабре есть куча статей, как компиляторы умным образом понимают, что всякие проверки можно из кода выкинуть, поскольку раньше эта или более обширная проверка уже делалась. Но вот как сделать прямо противоположное -- оставить дублирующуюся проверку, желательно побольше во всяких разных местах и не прям одинаковые, чтобы искать было сложно, никто не пишет. Да, можно выключить оптимизации, но ведь этим вы и взломщикам работу упростите, верно?
если вы не его и меняли, то что вам еще советовали?
Видимо коряво сформулировал я мысль. Там, где был, например, jz я менял на jze - так я делал в первой статье (менял проверку ноль/единица). А сейчас да, я все переходы заменил на jmpы - безусловно переходить всегда. Я переформулирую, но уже завтра с утра)
Часто имеет смысл просто найти точки в основной программе, которые общаются с защитой. (Если конечно она не накрыта "конвертом"). Может оказаться что там просто проверка lic ok? yes/no. Тогда можно запатчить это место, а код защиты отключить(выкинуть) нахрен.
Ну мне было интересно, как расшифровывается этот файл lic. Его потом можно использовать с любой версией - хоть с старой 5.3, хоть с новой 7.4. Получилось универсально, особенно патчер даты - просто продлить старую лицензию и можно дальше работать (если конечно usb ключ есть). Плюс в проверках надо было бы патчить проверку на основание даты файла - я патчил в начале так, что он битый файл все равно принимал, но где-то упустил один момент и у меня цикл обратно вернулся и сказал, что файл побился. Так что и такой подход имеет право на жизнь, не спорю.
А не было ли мысли пойти по другому пути - а именно, вместо того, чтобы отучать WinFXNet от жадности (а вместе с ней - и склонности к соблюдению санкций) отреверсить протокол и релизнуть опенсорсную софтину (в т.ч. и под альтернативные ОС)?
Казалось бы, так и волки сыты, и Shneider Electric не "ограблен" на 164 EUR, или сколько там.
Вы предлагаете написать подобную программу с нуля. Боюсь это работа на 2-3 порядка более трудозатратна чем взлом.
Согласен с комментарием Ilya_JOATMON - это надо разобраться, как идёт общение с панелью с помощью библиотек, что идут с программой. Потом надо разобраться с форматом файла, в который сохраняет программа. Это дело не на пару часов точно - легче пару байт поменять, чем все заново переписать.
вы надеюсь посещали exelab или wasm ? там более специфичные люди обитают
А exelab разве жив? Я думал, как они в годах 2018 домен потеряли, так и всё. А WASM даже не рассматривал - он же вроде для простых программистов на ассемблере.
Капец. Давненько я туда не ходил.
https://jeyndoe.github.io/edump/pages/action=vthread&forum=1&topic=26570&page=0.html
А так именно cracklab - то он жив, здоров, только тоже сменил домен.
«Отучаем» WinFXNet от жадности (часть 2 и заключительная)