Научите, добрые люди. Хочу защитить свое приложение от дампа
https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Runtime/AntiDump.cs - можно позатирать заголовки PE-файлов, не то чтобы это было хорошо сделано в Confuser'е, но для примера можно посмотреть (код, конечно, уебанский, сложно сделать его менее читаемым, чем тут). Говорят, что можно стирать код методов после того, как они заJIT-ились, но я пока не видел такого в природе (если видели, то скиньте ссылку). Наверное, можно еще что-то подзатереть из мета-таблиц, но надо тестить. Можно сделать JIT-хук и расшифровывать методы на лету, когда их компилятор будет JIT-ить, но это тоже довольно легко снимается, для примера JIT-хука: https://github.com/Elliesaur/TinyJitHook . А так помимо виртуализации вряд ли можно что-то прям серьезное придумать для защиты от дампа.Хочу защитить свое приложение от дампа
Первая ссылка (github(noad)) когда нужно вызывать функцию Initialize? В точке входа программы или как это реализовать?https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Runtime/AntiDump.cs - можно позатирать заголовки PE-файлов, не то чтобы это было хорошо сделано в Confuser'е, но для примера можно посмотреть (код, конечно, уебанский, сложно сделать его менее читаемым, чем тут). Говорят, что можно стирать код методов после того, как они заJIT-ились, но я пока не видел такого в природе (если видели, то скиньте ссылку). Наверное, можно еще что-то подзатереть из мета-таблиц, но надо тестить. Можно сделать JIT-хук и расшифровывать методы на лету, когда их компилятор будет JIT-ить, но это тоже довольно легко снимается, для примера JIT-хука: https://github.com/Elliesaur/TinyJitHook . А так помимо виртуализации вряд ли можно что-то прям серьезное придумать для защиты от дампа.
Чет Инди давно не видать, а то выскочил бы сейчас со своими анклавами, он вообще жив ?А так помимо виртуализации вряд ли можно что-то прям серьезное придумать для защиты от дампа.
Он (конфьюзер) вставляет вызов в статический конструктор глобального класса <Module>, то есть этот метод по идее вызовется еще до твоей точки входа: https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Protections/AntiDumpProtection.cs - но как бы ты можешь ее вызывать, когда хочешь, это не на что не должно влиять.Первая ссылка (github(noad)) когда нужно вызывать функцию Initialize? В точке входа программы или как это реализовать?
Я хз, давно не видел его.Чет Инди давно не видать, а то выскочил бы сейчас со своими анклавами, он вообще жив ?
Подебаж и посмотри, что она там в рантайме затирает из заголовков.Прикрутил этот класс, не помогло :Р
Блин я либо ламер, либо глупый, почему когда я открываю свой проект в dnspy у тебя такое содержание:Он (конфьюзер) вставляет вызов в статический конструктор глобального класса <Module>, то есть этот метод по идее вызовется еще до твоей точки входа: https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Protections/AntiDumpProtection.cs - но как бы ты можешь ее вызывать, когда хочешь, это не на что не должно влиять.
Я хз, давно не видел его.
Подебаж и посмотри, что она там в рантайме затирает из заголовков.
На одном нативный код, на другом MSIL (.NET) код? Без понятие, чего ты там открываешь.А когда чьё то ПО, то такое
По поводу нерабочего антидампа, ты запускал исполняемый, дампил его с виртуальной памяти и затем дамп открывал? Или ты просто добавил код из конфьюзера в проект и ожидал, что оно не будет днспаем открываться? Если второе, то, боюсь, что антидамп - это другое.Блин я либо ламер, либо глупый
Это похоже на VMProtectА когда чьё то ПО, то такое
Когда накрываю свой проект вмпротектом то ломается инициализация важных для запуска компонентов (сервиса keyauth)Это похоже на VMProtect
Параметры лицензирования видимо используешь.Когда накрываю свой проект вмпротектом то ломается инициализация важных для запуска компонентов (сервиса keyauth)
Параметры лицензирования видимо используешь.
Попробуй в настройках покапаться и использовать разное
Самая лучшая защита от реверса - вынос логики на серверНаучите, добрые люди. Хочу защитить свое приложение от дампа
лучше уж разобраться в вмпротекте, до веба мне далеко еще топатьСамая лучшая защита от реверса - вынос логики на сервер
Даже если и делать это - то каким способом? Я не понимаю алгоритма работы. Моё приложение скачивает длл библиотеки с сайта и внедряет их в процесс интегрированным в проект модулем, мне нужно скрыть все следы скачки и использования файла и строк конструктора, заранее спасибоСамая лучшая защита от реверса - вынос логики на сервер
RET, это ты?При чем тут мой товарищ Indy///
Понятно, осталось узнать методы сжатия/разжатия и шифрации/дешифрации@
arsarsov
При чем тут мой товарищ Indy///
Объясню, ваши библиотеки должны находитьтся на сервере в сжатом и зашифрованном виде,
после того как ваше приложение чудесным образом их как то скачивает в обход АВ и фаеров, вы их чудно расшифровываете в памяти расжимаете и далее с ними работаете.
Следы Вы скрываете тем что отрабатываете все в памяти. Естественно так как это не шелкод - они будут на диске, тут нужно фантазию включать посмотреть в сторону как его там релакс чтоль длл или я не помню, но алго думаю понятен, никогда не качайте файло в несжатом и некриптованном виде и обрабатывайте в памяти, где должен быть соответствующий рекриптор
так-же, чем мне зашифровывать? если я использую C#зашифрованном виде