• XSS.stack #1 – первый литературный журнал от юзеров форума

Защита приложения на C# (winform)

Пожалуйста, обратите внимание, что пользователь заблокирован
Хочу защитить свое приложение от дампа
https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Runtime/AntiDump.cs - можно позатирать заголовки PE-файлов, не то чтобы это было хорошо сделано в Confuser'е, но для примера можно посмотреть (код, конечно, уебанский, сложно сделать его менее читаемым, чем тут). Говорят, что можно стирать код методов после того, как они заJIT-ились, но я пока не видел такого в природе (если видели, то скиньте ссылку). Наверное, можно еще что-то подзатереть из мета-таблиц, но надо тестить. Можно сделать JIT-хук и расшифровывать методы на лету, когда их компилятор будет JIT-ить, но это тоже довольно легко снимается, для примера JIT-хука: https://github.com/Elliesaur/TinyJitHook . А так помимо виртуализации вряд ли можно что-то прям серьезное придумать для защиты от дампа.
 
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? В точке входа программы или как это реализовать?
 
А так помимо виртуализации вряд ли можно что-то прям серьезное придумать для защиты от дампа.
Чет Инди давно не видать, а то выскочил бы сейчас со своими анклавами, он вообще жив ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Первая ссылка (github(noad)) когда нужно вызывать функцию Initialize? В точке входа программы или как это реализовать?
Он (конфьюзер) вставляет вызов в статический конструктор глобального класса <Module>, то есть этот метод по идее вызовется еще до твоей точки входа: https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Protections/AntiDumpProtection.cs - но как бы ты можешь ее вызывать, когда хочешь, это не на что не должно влиять.

Чет Инди давно не видать, а то выскочил бы сейчас со своими анклавами, он вообще жив ?
Я хз, давно не видел его.

Прикрутил этот класс, не помогло :Р
Подебаж и посмотри, что она там в рантайме затирает из заголовков.
 
Он (конфьюзер) вставляет вызов в статический конструктор глобального класса <Module>, то есть этот метод по идее вызовется еще до твоей точки входа: https://github.com/yck1509/ConfuserEx/blob/master/Confuser.Protections/AntiDumpProtection.cs - но как бы ты можешь ее вызывать, когда хочешь, это не на что не должно влиять.


Я хз, давно не видел его.


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



А когда чьё то ПО, то такое
1668713167685.png


Коротко говоря, да, мне нужен такой же результат
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А когда чьё то ПО, то такое
На одном нативный код, на другом MSIL (.NET) код? Без понятие, чего ты там открываешь.

Блин я либо ламер, либо глупый
По поводу нерабочего антидампа, ты запускал исполняемый, дампил его с виртуальной памяти и затем дамп открывал? Или ты просто добавил код из конфьюзера в проект и ожидал, что оно не будет днспаем открываться? Если второе, то, боюсь, что антидамп - это другое.
 
Когда накрываю свой проект вмпротектом то ломается инициализация важных для запуска компонентов (сервиса keyauth)
Параметры лицензирования видимо используешь.
Попробуй в настройках покапаться и использовать разное
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Научите, добрые люди. Хочу защитить свое приложение от дампа
Самая лучшая защита от реверса - вынос логики на сервер
 
Самая лучшая защита от реверса - вынос логики на сервер
Даже если и делать это - то каким способом? Я не понимаю алгоритма работы. Моё приложение скачивает длл библиотеки с сайта и внедряет их в процесс интегрированным в проект модулем, мне нужно скрыть все следы скачки и использования файла и строк конструктора, заранее спасибо
 
Пожалуйста, обратите внимание, что пользователь заблокирован
@

arsarsov

При чем тут мой товарищ Indy///
Объясню, ваши библиотеки должны находитьтся на сервере в сжатом и зашифрованном виде,
после того как ваше приложение чудесным образом их как то скачивает в обход АВ и фаеров, вы их чудно расшифровываете в памяти расжимаете и далее с ними работаете.
Следы Вы скрываете тем что отрабатываете все в памяти. Естественно так как это не шелкод - они будут на диске, тут нужно фантазию включать посмотреть в сторону как его там релакс чтоль длл или я не помню, но алго думаю понятен, никогда не качайте файло в несжатом и некриптованном виде и обрабатывайте в памяти, где должен быть соответствующий рекриптор
 
@

arsarsov

При чем тут мой товарищ Indy///
Объясню, ваши библиотеки должны находитьтся на сервере в сжатом и зашифрованном виде,
после того как ваше приложение чудесным образом их как то скачивает в обход АВ и фаеров, вы их чудно расшифровываете в памяти расжимаете и далее с ними работаете.
Следы Вы скрываете тем что отрабатываете все в памяти. Естественно так как это не шелкод - они будут на диске, тут нужно фантазию включать посмотреть в сторону как его там релакс чтоль длл или я не помню, но алго думаю понятен, никогда не качайте файло в несжатом и некриптованном виде и обрабатывайте в памяти, где должен быть соответствующий рекриптор
Понятно, осталось узнать методы сжатия/разжатия и шифрации/дешифрации
Так же не поятно "выполнение в памяти"
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх