Хоспади, мужик, я 3 недели страдал и так не запустил его. Где ты раньше был? :D Наконец то уберу костыли и закончу свой проект. Спасибо тебе огромное!!!)))
Первый раз пользовался вторым способом т.к. была всего 1 длл А сейчас возникла ситуация с WPF проектом в который установлена хренова гора зависимостей и я эти все dll вписал в батник, запустил его... ноо он выдал "Duplicate type and allowDup Option", попробовал использовать /allowDup параметр, но он не помог, в итоге сдался и перешёл на костура фоди Экзешник весит 1 мб, считаю что немного, так что способ рабочий) Спасибо ещё раз) Помню как смотрел этот видос год назад, вот снова понадобился освежить память) Жаль ещё один лайк поставить нельзя)
При первых моих поисках информации и решений по этой теме, я наткнулся на противников впихивания всё в один exe) советы были такого плана, просто собери свой инсталлятор) мать вашу за ногу зачем мне инсталлятор для проги с пару строчками кода) Немножко не хватало таких видео как у тебя, и даже в большей мере множко) Короче говоря спасибо, за сэкономленные нервы других кто ещё в поиске решений. Но с другой стороны самому даже интересней, хотя времени всегда мало.
Анекдот: Американский пользователь задаёт вопрос на форуме, ему отвечают. Израильский пользователь задаёт вопрос на форуме, ему задают встречный вопрос. Русский пользователь задаёт вопрос на форуме, ему долго объясняют, какой он мудак.
Здравствуйте. Спасибо за видео, как раз понадобилось склеить. Может подскажите почему не удается ни установить, ни удалить nuget пакеты через диспетчер пакетов пишет вот это: Ошибка. (Исключение из HRESULT: 0x80020009 (DISP_E_EXCEPTION)) А через консоль диспетчера пакетов получается. Ни где не могу найти ответа.
Больше понравился способ с Ilmerge, но он не работает с Wpf видимо, либо я что-то не так делаю. Costura при этом нормально отрабатывает с wpf. Результаты такие вышли: Исходный файлик 9кб + библиотека 13кб В Winforms ilmerge дает итоговый 16кб В wpf castura дает 40кб, что на самом деле не так и плохо, правда не знаю насколько все будет разрастаться с большими проектами.
Привет, Хачатур. Недавно сделал приложение на WF (.NET 6.0 не Framework), и хочу все запихнуть в один исполняемый файл (в папке bin есть dll-ка с таким же названием как exe). Пробовал сделать 1 способом - ничего не получилось (возможно тут надо как-то по другому делать), когда ставил ilmerge даже папка не появилась. Может ты знаешь в чем моя ошибка?
Спасибо за полезные уроки! Подскажите, есть ли способы менять иконку приложения в панели задач во время его работы? Сделать, например, иконку в виде часов с движущимися стрелками. Или рисовать поверх этой иконки, например, циферку о количестве уведомлений.
Привет 🖐 Если нужно, чтобы он был подключён к проекту, то только так, как на видео. Это всё-таки не отдельная программа, которую можно было бы просто бросать в любую папку.
Привет, Хачатур. Скажи пожалуйста, как создать задачу в планировщике заданий без библиотеки Microsoft.Win32.TaskScheduler (она весит ~350кб, что много) upd: сделал через cmd
Как быть с локализованными формами, где есть 2 или больше языка, для них создается 2 одинаковых файла: имяприложения.resources.dll в папках ru и en, как их внедрить через ilmerge, а то внедряется только английский язык, на русский не меняется
Если русский не применяется, значит что-то не так с кодом. Строго говоря не так то, что язык берётся из библиотек, а не классов или словарей Dictionary.
@@XpucT если просто запускать приложение, то всё нормально, и язык в библиотеках это если на форме включить Localizable*, и поставить чуть выше язык на русский и редактировать форму на языке, оно создаёт resx файл который потом в эти папки компилится, но дело в том что файлы идентичные. И кстати я не знаю как создавать язык через dictionary, это надо создавать класс с миллионами строк кода или как?
ну тебе с этими способами не придется писать дополнительный код, плюс к этому, как я понял, dll не распаковывается в директории рядом с исполняемым файлом, так что нет никаких лишних движений. а если у тебя таких библиотек не 1, а больше? каждую придется из ресурсов доставать, а зачем, когда есть способы удобнее)
Нажми на ссылку и попадёшь на видео. Останови видео и прокрути вниз в комменты. Самый первый вопрос и Мой ответ - это и есть прямая ссылка, данная Сергеем выше.
Доброго времени суток ! XpucT и Зрители , Шикарный (07:39 Второй способ) Понятно что Иконку ,Описание и Манифест Можно исправить через : (Restorator ) Или (Resource Hacker) Вопрос не вывозит ли это дополнительных детектов у паранойяльных ANTI V.irus ) PS ; Спасибо за видео не знал этот способ.
Привет, не могу склеить свой exe с dll Почему то раньше в папке bin лежал только один exe и два json файла, но сейчас при сборке проекта в папке оказываются те-же два json файла, exe и dll Без dll программа просто не запускается, даже не выдаёт никаких ошибок Пробовал костуру, ilmerge, ilrepack, enigmavm, ничего не получается Костура не склеивает, ilmerge и ilrepack выдают такую же ошибку как у комментаторов снизу, enigmavm вроде склеивает, но программа не запускается и выдаёт ошибку "необходимо установить .net desktop runtime 6.0.6", но даже после установки вылезает эта же ошибка Есть ли еще какие-то способы склеивания?
@@C6OI Что-то непонятное Ты делаешь, если с exe появляются json. Эти это Твои json, то их нужно класть в ресурсы, чтобы не было зависимостей. Нужно разобраться, что они делают. Но их точно не должно лежать рядом.
ХрисТ пожалуйста сделайте свой телеграм группу канал в этом видео вы мне очен помогли я помню как установил пакеты для работы с реестра winregistry и там появлялся 10 .dll .json файлов
Привет В первом уроке показывал как библиотеку подключать =) Просто добавляешь ссылку в Ссылках в Обозревателе на свой dll. Но лучше видос пересмотри =)
@@XpucT было бы не лишним добавить пару слов про встроенную возможность VS , она ведь из коробки умеет паковать в один ехе , правой кнопкой мыши по проекту .. опубликовать .. автономно.. (один раз мастер публикации настроил и все ,дальше одним кликом пакует).
Привет 🖐 Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Хачатур работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Хачатур рассказывал в видео для спонсоров: th-cam.com/users/XpucTcommunity Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.
@@XpucT An exception occurred during merging: ILMerge.Merge: /target not specified, but output file, 'trash.exe', has a different extension than the primary assembly, 'Exander'. в ILMerging.ILMerge.Merge() в ILMerging.ILMerge.Main(String[] args) мм, не работает. или я что-то не так делаю?
Обфускация кода, но проект всë равно вскроют, хочешь ты этого или нет. Если ты хочешь коммерческий проект, то делай программу на с++ на клиентской части, а важный функционал (активация допустим), то сделать на сервере и через API работать с серверной частью в клиенте
GerodStudio Developers Win 10 Tweaker уже год ебутся и не могут взломать, ибо помимо готовых инструментов нужен мозг и понимание того, как "запечатывается" проект. И да, Вы всё верно поняли, именно ебутся. И да, им это надо. И да, целая гильдия уже тех, у кого подгорает с того, что Хачатур разрушил стереотип того, что на C# можно собрать проект, который при даже нанятых хакерах не вскроешь, ибо знания нужны такие, за которую получают зарплату человек 100 в мире, а не школохакерские. На тех же С++ порой взломать проще, ибо те решения, которые даются, обходятся легко. Говорит Вам это человек, чья пользовательская база превышает 2 000 000 человек. Поэтому важно не язык искать защищённый, а методы. Об этом чуть ниже. Вставляю самоцитату: Чтобы советовать что-то, Я должен рекомендовать то, что использую сам. А если скажу, что использую сам, и как Я это использую, то грош цена Моей защите. У каждого она должна быть уникальной. Поэтому предлагаю начать гуглить обфускаторы C#. Чтобы проверить надёжность обфускации, нужно скачать de4dot и dnSpy. de4dot чистит код от запутанности (обфускации). dnSpy позволяет открывать exe как проект и даже собирать (экспортировать) обратно в файлы проекта. Пока будешь гуглить, не раз встретишь то, что на C# не удастся скрыть код. Это не так. Потому что 1) можно полностью отказаться от static методов, 2) шифровать строки внутри самой программы, 3) держать часть кода в отдельной dll, вшитой в программу, 3) держать часть кода в зашифрованном виде на сервере и выполнять этот код на лету (компиляция и выполнение удалённого кода). Подобные темы Я не рассматривал на канале по понятным (надеюсь) причинам. Процесс защиты кода - это не просто обфускация специальными программами - это также палки в колёса хакерам. Важнее заставить хакера заебаться. Чтобы он пожалел вообще, что полез ломать =) В каждой новой версии Win 10 Tweaker есть подводные камни для хакеров. Таким образом на их публичных высказываниях Я делаю выводы и улучшаю защиту. 15.2 и 15.3 beta пока никому не удалось взломать и вряд ли кому-то захочется, потому что Я придумал кое-что ещё. То есть на 1 шаг впереди. Таким образом мы потихоньку на опыте Win 10 Tweaker видим, что если автор не бросает идею, то есть ещё пути для развития. Многие просто бросают, а Мне любопытно доказать обратное, что на C# можно сделать что хочешь. Если уж совсем по-взрослому, то в программу нужно закладывать библиотеки (dll) написанные на С++ и других языках, чтобы у хакер охуел от того, что ему предстоит ломать. Чтобы каждый его шаг приводил только к новому вызову. Поэтому, защита Твоего проекта может быть только комплексной. Если нужна защита от школохакеров, то достаточно простого обфускатора. Когда Я ничего не применял в программе, тут чуть ли ни каждый второй отмечался в комментариях, типа: а почему catch не обрабатываешь, я взломал твой код, я молодец, знаю что такое dnSpy и всё в таком духе. Поэтому также готовься, что буду появляться выскочки, которые таким образом себя пытаются похвалить. Однако, сами, конечно, они ничего не стоят. И вот уже год все умолкли и лишь спрашивают у Меня, как Я так умудрился и всё в таком духе. Особый бугурт у людей вызывает то, что Я проверяю целостность программы и размер файла во время запуска. Ведь мы же не можем знать, сколько точно в байтах будет весить программа, особенно после обфускации.... В общем, ходов много. И чем больше заложишь в софт, тем надёжнее. Другой вопрос: а нужно ли это? Мне лично нужно с целью узнать степень надёжности и, возможно, сделать свой платный автоматизированный инструмент для таких, как Ты. Кликнул и защитил. Но пока Я, как и многие другие, далеки от совершенства. Но это лишь вызов для Меня =) И должен быть для Тебя 👍
Человек, кстати, спросил не прообфускацию и не с целью спрятать код. На C# - это бесполезно. А вот сделать закрыть от реверса - можно. Я вот поставил задачу и выполнил. Заодно хакеров потроллил и полтора года за нос водил =)
Не выходит, может кто сможет подсказать почему? An exception occurred during merging: ILMerge.Merge: Could not load assembly from the location 'C:\Users\Lissa\Desktop\ghjtrn\bin\we.exe'. Skipping and processing rest of arguments. в ILMerging.ILMerge.Merge() в ILMerging.ILMerge.Main(String[] args)
Хоспади, мужик, я 3 недели страдал и так не запустил его. Где ты раньше был? :D
Наконец то уберу костыли и закончу свой проект. Спасибо тебе огромное!!!)))
Как же я рад твоей активности в плане выхода роликов, спасибо большое, жду еще!
Спасибо большое за понятное объяснение)) Покажу это видео своему коллеге, он не верил что можно все dll запихнуть в один экзешник))
Первый раз пользовался вторым способом т.к. была всего 1 длл
А сейчас возникла ситуация с WPF проектом в который установлена хренова гора зависимостей и я эти все dll вписал в батник, запустил его... ноо он выдал "Duplicate type and allowDup Option", попробовал использовать /allowDup параметр, но он не помог, в итоге сдался и перешёл на костура фоди
Экзешник весит 1 мб, считаю что немного, так что способ рабочий) Спасибо ещё раз) Помню как смотрел этот видос год назад, вот снова понадобился освежить память) Жаль ещё один лайк поставить нельзя)
Максимально полезная штука!
Благодарю, Хачатур!
Даже и не знал, что есть такие способы...
Слыхал только про "ILRepack", но толком не юзал:)
ILRepack - это как раз продолжение проект ILMerge =)
@@XpucT О, спасибо, буду знать теперь:)
Мужик, очень хороший контент, и шутки крутые, продолжай дальше снимать уроки по C#, ну а я покачто подпишусь.
Каждый день что-то новое узнаю. Спасибо!
Математика от Хачатура 10:56 😂
Вообще отлично. Спасибо !!!
Сам на C# давно уже не пишу, но ваши видео гипнотически интересные) Спасибо!
Где же ты был раньше с этим способом. Я использовал Костуру и думал та, почему мой exe так сильно весит. Очень полезное видео.
Ты прям чувствуешь, что мне нужно. Давно хотел узнать об этом, спасибо большое
При первых моих поисках информации и решений по этой теме, я наткнулся на противников впихивания всё в один exe) советы были такого плана, просто собери свой инсталлятор) мать вашу за ногу зачем мне инсталлятор для проги с пару строчками кода) Немножко не хватало таких видео как у тебя, и даже в большей мере множко) Короче говоря спасибо, за сэкономленные нервы других кто ещё в поиске решений. Но с другой стороны самому даже интересней, хотя времени всегда мало.
Анекдот:
Американский пользователь задаёт вопрос на форуме, ему отвечают.
Израильский пользователь задаёт вопрос на форуме, ему задают встречный вопрос.
Русский пользователь задаёт вопрос на форуме, ему долго объясняют, какой он мудак.
@@XpucT И ещё советуют написать свой язык, если что-то не устраевает)
Спасибо большое)
Здравствуйте. Спасибо за видео, как раз понадобилось склеить.
Может подскажите почему не удается ни установить, ни удалить nuget пакеты через диспетчер пакетов пишет вот это:
Ошибка. (Исключение из HRESULT: 0x80020009 (DISP_E_EXCEPTION))
А через консоль диспетчера пакетов получается. Ни где не могу найти ответа.
Где ты был раньше когда я для проекта делал подпроект и выпиливал одинаковые куски кода внутрь чтобы не было отдельной dll )))
Больше понравился способ с Ilmerge, но он не работает с Wpf видимо, либо я что-то не так делаю.
Costura при этом нормально отрабатывает с wpf.
Результаты такие вышли:
Исходный файлик 9кб + библиотека 13кб
В Winforms ilmerge дает итоговый 16кб
В wpf castura дает 40кб, что на самом деле не так и плохо, правда не знаю насколько все будет разрастаться с большими проектами.
Не уверен, но вероятно, проблема может быть в том, что на разных Framework или Core собирались проекты exe и dll.
Ставлю лайк до просмотра! Знаю, что будет круто и по делу. Well done commander )))
Zdarova bro a ya ustanovil packege Guna 2 UI i .dll dayut posle Ilmerge.exe ne otrivaetsya prilojeniya otvet pojolyusta mne kak mojno eto sdelat?
Есть еще ILRepack более "продвинутая" версия ILMerge с поддержкой дополнительных функций, если кому-то нужны...
Привет, Хачатур. Недавно сделал приложение на WF (.NET 6.0 не Framework), и хочу все запихнуть в один исполняемый файл (в папке bin есть dll-ка с таким же названием как exe). Пробовал сделать 1 способом - ничего не получилось (возможно тут надо как-то по другому делать), когда ставил ilmerge даже папка не появилась. Может ты знаешь в чем моя ошибка?
P.S только вес у файла огромный, без понятия как это исправить
Привет 🖐
Вероятно, второй файл не является файлом .NET
Спасибо за полезные уроки! Подскажите, есть ли способы менять иконку приложения в панели задач во время его работы?
Сделать, например, иконку в виде часов с движущимися стрелками. Или рисовать поверх этой иконки, например, циферку о количестве уведомлений.
Технически это возможно, но нужно постоянно перерисовывать explorer. А это идея плохая.
Спасибо большое
Друзья, как сделать установщик своей программы, разработанной на .NET C# ?
Может есть уже видео ?
Видео работы с ресурсами уже есть на канале.
Но обычно люди берут что-то готовое. Готовые инсталляторы в сети.
Я рекомендую костылять свой ;)
У тебя супер уроки!
Привет Христ! как можно использовать "packages costura" для всех проект?
Привет 🖐
Если нужно, чтобы он был подключён к проекту, то только так, как на видео.
Это всё-таки не отдельная программа, которую можно было бы просто бросать в любую папку.
Большое спасибо, то что нужно
Очень полезно узнал, спасибо!
Привет, Хачатур. Скажи пожалуйста, как создать задачу в планировщике заданий без библиотеки Microsoft.Win32.TaskScheduler (она весит ~350кб, что много)
upd: сделал через cmd
Красавчик ☝
Почему мне нравятся такие уроки?!
Где можно добавить самостоятельно отображение пункта(может есть горячие клавиши ?) "открыть окно команд" ?
Win 10 Tweaker ➜ Системная информация ➜ Персональные рекомендации
Не могу найти папки
Добрый день, этот способ устарел и не поддерживается в наши дни. Как можно также легко это сделать но уже в наши дни?
Не собираюсь ничего писать, но всё равно интересно!
подскажи что нужна для вшить у прогу ключ? что нужно для этого?
в cmd можно табы юзать для дополнения имен файлов
Отличное видео! А будет ли что-то наподобие практики создания приложений небольших, чтобы многое объединить?
Я бы посмотрел бы как бы в C# взаимодействовать со сторонними процессами , там надпись какую нибудь считать . За фишку с exe спасибо . Лайк
Как быть с локализованными формами, где есть 2 или больше языка, для них создается 2 одинаковых файла: имяприложения.resources.dll в папках ru и en, как их внедрить через ilmerge, а то внедряется только английский язык, на русский не меняется
Если русский не применяется, значит что-то не так с кодом.
Строго говоря не так то, что язык берётся из библиотек, а не классов или словарей Dictionary.
@@XpucT если просто запускать приложение, то всё нормально, и язык в библиотеках это если на форме включить Localizable*, и поставить чуть выше язык на русский и редактировать форму на языке, оно создаёт resx файл который потом в эти папки компилится, но дело в том что файлы идентичные. И кстати я не знаю как создавать язык через dictionary, это надо создавать класс с миллионами строк кода или как?
Если дождётесь, то сниму про это видео =)
@@XpucT хорошо, буду ждать сколько нужно, спасибо
Хачатур здравствуй, кажись второй способ больше не актуален, папка не создается в корневом каталоге проекта
А почему бы просто не добавить эту dll в ресурсы и потом вытаскивать через WriteAllBytes рядом с exe, если её не существует?
ну тебе с этими способами не придется писать дополнительный код, плюс к этому, как я понял, dll не распаковывается в директории рядом с исполняемым файлом, так что нет никаких лишних движений. а если у тебя таких библиотек не 1, а больше? каждую придется из ресурсов доставать, а зачем, когда есть способы удобнее)
Это называется - костыли...
К илмерджу можно bat создать, который будет автоматически все файлы внутри папки пихать через илмердж в ехе
А как батник может выглядеть, если название проектов и длл могут отличаться
Полезный видос :D У меня вопрос: Проги на c# легко декомпилировать, возможно как-то защитить exe от этого?
Привет 🖐
Ответ Хачатура ➜ th-cam.com/video/7fRrd0litOA/w-d-xo.html&lc=UgwggBxoB3d2DJHNj0J4AaABAg
@@serpotapov в этом видео нету ответа на мой вопрос
Нажми на ссылку и попадёшь на видео.
Останови видео и прокрути вниз в комменты.
Самый первый вопрос и Мой ответ - это и есть прямая ссылка, данная Сергеем выше.
@@XpucT Спасибо огромное.
Как всегда топово!))
Доброго времени суток ! XpucT и Зрители ,
Шикарный (07:39 Второй способ)
Понятно что Иконку ,Описание и Манифест
Можно исправить через : (Restorator ) Или (Resource Hacker)
Вопрос не вывозит ли это дополнительных детектов у паранойяльных ANTI V.irus )
PS ; Спасибо за видео не знал этот способ.
Нет, антивирусы не будут ругаться, т.к. нет никакой обфускации и подмены загрузчика.
Спасибо!
👍
Привет, не могу склеить свой exe с dll
Почему то раньше в папке bin лежал только один exe и два json файла, но сейчас при сборке проекта в папке оказываются те-же два json файла, exe и dll
Без dll программа просто не запускается, даже не выдаёт никаких ошибок
Пробовал костуру, ilmerge, ilrepack, enigmavm, ничего не получается
Костура не склеивает, ilmerge и ilrepack выдают такую же ошибку как у комментаторов снизу, enigmavm вроде склеивает, но программа не запускается и выдаёт ошибку "необходимо установить .net desktop runtime 6.0.6", но даже после установки вылезает эта же ошибка
Есть ли еще какие-то способы склеивания?
Привет 🖐
Откуда json? Это Твои файлы?
@@XpucT Нет, файлы `название_проекта.deps.json` и `название_проекта.runtimeconfig.json`
Они создаются сами при сборке
@@C6OI Что-то непонятное Ты делаешь, если с exe появляются json.
Эти это Твои json, то их нужно класть в ресурсы, чтобы не было зависимостей.
Нужно разобраться, что они делают. Но их точно не должно лежать рядом.
@@XpucT Отправил два сообщения со ссылками на скриншоты с имгура, но видимо их сожрала автомодерация ютуба
ХрисТ пожалуйста сделайте свой телеграм группу канал в этом видео вы мне очен помогли я помню как установил пакеты для работы с реестра winregistry и там появлялся 10 .dll .json файлов
Привет.
Забыл как подключить С.М()
Как усатый помощник?
Привет ему.
ВсЁ. Всех Благ. пока пока
Привет
В первом уроке показывал как библиотеку подключать =)
Просто добавляешь ссылку в Ссылках в Обозревателе на свой dll.
Но лучше видос пересмотри =)
Норм, уже пересмотрел.
Хотел пошутить
с C.M();
Привет, где можно скачать фон рабочего стола
как у тебя?
Привет 🖐
Держи ➜ i.imgur.com/gaRA71U.jpg
@@serpotapov Спасибо
Оба варианта подходят для WPF?
Совершенно верно. На WPF и первый и второй идентичны, что на Windows Forms.
@@XpucT было бы не лишним добавить пару слов про встроенную возможность VS , она ведь из коробки умеет паковать в один ехе , правой кнопкой мыши по проекту .. опубликовать .. автономно.. (один раз мастер публикации настроил и все ,дальше одним кликом пакует).
Что за тема на VS?
Привет 🖐
Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Хачатур работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Хачатур рассказывал в видео для спонсоров:
th-cam.com/users/XpucTcommunity
Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.
@@XpucT Спасиб большое!
Хачатур в ударе.
Мощь!
9:20 у меня нет "открыть окно команд"
Win 10 Tweaker ➜ Системная информация ➜ Персональные рекомендации
Там будет предложение вернуть этот пункт.
@@XpucT что-то не могу найти этот пункт
@@dmimal8401 i.imgur.com/0pFbk9R.png
@@XpucT An exception occurred during merging:
ILMerge.Merge: /target not specified, but output file, 'trash.exe', has a different extension than the primary assembly, 'Exander'.
в ILMerging.ILMerge.Merge()
в ILMerging.ILMerge.Main(String[] args)
мм, не работает. или я что-то не так делаю?
@@dmimal8401 судя по ошибке Ты пытаешься склеить не exe с чем-то не поддерживающимся.
всё это лишь для собственных ДЛЛ, сторонние не работают так как те кто делает ДЛЛ тоже не дураки, защита работает чётко
Зачем склеивать exe и dll?
Довольно у многих есть интерес не держать 10 файлов, а всё иметь в одном исполняемом файле.
@@XpucT можно всё держать в одном файле.
@@user_PsevdonimyEtoPolnyjOtstoj если речь о ресурсах, то да, то не со всеми dll такое канает.
А я чтобы не заморачиваться с командной строкой набросал себе GUI😁
Как защитить свой проект от мамкиных реверсеров?
Обфускация кода, но проект всë равно вскроют, хочешь ты этого или нет. Если ты хочешь коммерческий проект, то делай программу на с++ на клиентской части, а важный функционал (активация допустим), то сделать на сервере и через API работать с серверной частью в клиенте
GerodStudio Developers
Win 10 Tweaker уже год ебутся и не могут взломать, ибо помимо готовых инструментов нужен мозг и понимание того, как "запечатывается" проект. И да, Вы всё верно поняли, именно ебутся. И да, им это надо. И да, целая гильдия уже тех, у кого подгорает с того, что Хачатур разрушил стереотип того, что на C# можно собрать проект, который при даже нанятых хакерах не вскроешь, ибо знания нужны такие, за которую получают зарплату человек 100 в мире, а не школохакерские. На тех же С++ порой взломать проще, ибо те решения, которые даются, обходятся легко. Говорит Вам это человек, чья пользовательская база превышает 2 000 000 человек. Поэтому важно не язык искать защищённый, а методы. Об этом чуть ниже. Вставляю самоцитату:
Чтобы советовать что-то, Я должен рекомендовать то, что использую сам.
А если скажу, что использую сам, и как Я это использую, то грош цена Моей защите.
У каждого она должна быть уникальной.
Поэтому предлагаю начать гуглить обфускаторы C#.
Чтобы проверить надёжность обфускации, нужно скачать de4dot и dnSpy.
de4dot чистит код от запутанности (обфускации).
dnSpy позволяет открывать exe как проект и даже собирать (экспортировать) обратно в файлы проекта.
Пока будешь гуглить, не раз встретишь то, что на C# не удастся скрыть код.
Это не так. Потому что 1) можно полностью отказаться от static методов, 2) шифровать строки внутри самой программы, 3) держать часть кода в отдельной dll, вшитой в программу, 3) держать часть кода в зашифрованном виде на сервере и выполнять этот код на лету (компиляция и выполнение удалённого кода).
Подобные темы Я не рассматривал на канале по понятным (надеюсь) причинам.
Процесс защиты кода - это не просто обфускация специальными программами - это также палки в колёса хакерам. Важнее заставить хакера заебаться. Чтобы он пожалел вообще, что полез ломать =) В каждой новой версии Win 10 Tweaker есть подводные камни для хакеров. Таким образом на их публичных высказываниях Я делаю выводы и улучшаю защиту. 15.2 и 15.3 beta пока никому не удалось взломать и вряд ли кому-то захочется, потому что Я придумал кое-что ещё. То есть на 1 шаг впереди. Таким образом мы потихоньку на опыте Win 10 Tweaker видим, что если автор не бросает идею, то есть ещё пути для развития. Многие просто бросают, а Мне любопытно доказать обратное, что на C# можно сделать что хочешь. Если уж совсем по-взрослому, то в программу нужно закладывать библиотеки (dll) написанные на С++ и других языках, чтобы у хакер охуел от того, что ему предстоит ломать. Чтобы каждый его шаг приводил только к новому вызову.
Поэтому, защита Твоего проекта может быть только комплексной.
Если нужна защита от школохакеров, то достаточно простого обфускатора. Когда Я ничего не применял в программе, тут чуть ли ни каждый второй отмечался в комментариях, типа: а почему catch не обрабатываешь, я взломал твой код, я молодец, знаю что такое dnSpy и всё в таком духе. Поэтому также готовься, что буду появляться выскочки, которые таким образом себя пытаются похвалить. Однако, сами, конечно, они ничего не стоят. И вот уже год все умолкли и лишь спрашивают у Меня, как Я так умудрился и всё в таком духе. Особый бугурт у людей вызывает то, что Я проверяю целостность программы и размер файла во время запуска. Ведь мы же не можем знать, сколько точно в байтах будет весить программа, особенно после обфускации.... В общем, ходов много. И чем больше заложишь в софт, тем надёжнее. Другой вопрос: а нужно ли это? Мне лично нужно с целью узнать степень надёжности и, возможно, сделать свой платный автоматизированный инструмент для таких, как Ты. Кликнул и защитил. Но пока Я, как и многие другие, далеки от совершенства. Но это лишь вызов для Меня =) И должен быть для Тебя 👍
Человек, кстати, спросил не прообфускацию и не с целью спрятать код. На C# - это бесполезно. А вот сделать закрыть от реверса - можно. Я вот поставил задачу и выполнил. Заодно хакеров потроллил и полтора года за нос водил =)
Не выходит, может кто сможет подсказать почему?
An exception occurred during merging:
ILMerge.Merge: Could not load assembly from the location 'C:\Users\Lissa\Desktop\ghjtrn\bin\we.exe'. Skipping and processing rest of arguments.
в ILMerging.ILMerge.Merge()
в ILMerging.ILMerge.Main(String[] args)
В ошибке ответ.
Файла нет, чтобы склеивать. Сначала соберите.