Хоспади, мужик, я 3 недели страдал и так не запустил его. Где ты раньше был? :D Наконец то уберу костыли и закончу свой проект. Спасибо тебе огромное!!!)))
Первый раз пользовался вторым способом т.к. была всего 1 длл А сейчас возникла ситуация с WPF проектом в который установлена хренова гора зависимостей и я эти все dll вписал в батник, запустил его... ноо он выдал "Duplicate type and allowDup Option", попробовал использовать /allowDup параметр, но он не помог, в итоге сдался и перешёл на костура фоди Экзешник весит 1 мб, считаю что немного, так что способ рабочий) Спасибо ещё раз) Помню как смотрел этот видос год назад, вот снова понадобился освежить память) Жаль ещё один лайк поставить нельзя)
Здравствуйте. Спасибо за видео, как раз понадобилось склеить. Может подскажите почему не удается ни установить, ни удалить nuget пакеты через диспетчер пакетов пишет вот это: Ошибка. (Исключение из HRESULT: 0x80020009 (DISP_E_EXCEPTION)) А через консоль диспетчера пакетов получается. Ни где не могу найти ответа.
При первых моих поисках информации и решений по этой теме, я наткнулся на противников впихивания всё в один exe) советы были такого плана, просто собери свой инсталлятор) мать вашу за ногу зачем мне инсталлятор для проги с пару строчками кода) Немножко не хватало таких видео как у тебя, и даже в большей мере множко) Короче говоря спасибо, за сэкономленные нервы других кто ещё в поиске решений. Но с другой стороны самому даже интересней, хотя времени всегда мало.
Анекдот: Американский пользователь задаёт вопрос на форуме, ему отвечают. Израильский пользователь задаёт вопрос на форуме, ему задают встречный вопрос. Русский пользователь задаёт вопрос на форуме, ему долго объясняют, какой он мудак.
Привет, Хачатур. Недавно сделал приложение на 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, а больше? каждую придется из ресурсов доставать, а зачем, когда есть способы удобнее)
Больше понравился способ с Ilmerge, но он не работает с Wpf видимо, либо я что-то не так делаю. Costura при этом нормально отрабатывает с wpf. Результаты такие вышли: Исходный файлик 9кб + библиотека 13кб В Winforms ilmerge дает итоговый 16кб В wpf castura дает 40кб, что на самом деле не так и плохо, правда не знаю насколько все будет разрастаться с большими проектами.
Доброго времени суток ! 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 файлов
@@XpucT было бы не лишним добавить пару слов про встроенную возможность VS , она ведь из коробки умеет паковать в один ехе , правой кнопкой мыши по проекту .. опубликовать .. автономно.. (один раз мастер публикации настроил и все ,дальше одним кликом пакует).
Привет 🖐 Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Хачатур работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Хачатур рассказывал в видео для спонсоров: ruclips.net/user/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) мм, не работает. или я что-то не так делаю?
Нажми на ссылку и попадёшь на видео. Останови видео и прокрути вниз в комменты. Самый первый вопрос и Мой ответ - это и есть прямая ссылка, данная Сергеем выше.
Не выходит, может кто сможет подсказать почему? 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)
Привет В первом уроке показывал как библиотеку подключать =) Просто добавляешь ссылку в Ссылках в Обозревателе на свой dll. Но лучше видос пересмотри =)
Обфускация кода, но проект всë равно вскроют, хочешь ты этого или нет. Если ты хочешь коммерческий проект, то делай программу на с++ на клиентской части, а важный функционал (активация допустим), то сделать на сервере и через 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# - это бесполезно. А вот сделать закрыть от реверса - можно. Я вот поставил задачу и выполнил. Заодно хакеров потроллил и полтора года за нос водил =)
Хоспади, мужик, я 3 недели страдал и так не запустил его. Где ты раньше был? :D
Наконец то уберу костыли и закончу свой проект. Спасибо тебе огромное!!!)))
Как же я рад твоей активности в плане выхода роликов, спасибо большое, жду еще!
Спасибо большое за понятное объяснение)) Покажу это видео своему коллеге, он не верил что можно все dll запихнуть в один экзешник))
Мужик, очень хороший контент, и шутки крутые, продолжай дальше снимать уроки по C#, ну а я покачто подпишусь.
Максимально полезная штука!
Благодарю, Хачатур!
Даже и не знал, что есть такие способы...
Слыхал только про "ILRepack", но толком не юзал:)
ILRepack - это как раз продолжение проект ILMerge =)
@@XpucT О, спасибо, буду знать теперь:)
Ты прям чувствуешь, что мне нужно. Давно хотел узнать об этом, спасибо большое
Ставлю лайк до просмотра! Знаю, что будет круто и по делу. Well done commander )))
Сам на C# давно уже не пишу, но ваши видео гипнотически интересные) Спасибо!
Каждый день что-то новое узнаю. Спасибо!
Первый раз пользовался вторым способом т.к. была всего 1 длл
А сейчас возникла ситуация с WPF проектом в который установлена хренова гора зависимостей и я эти все dll вписал в батник, запустил его... ноо он выдал "Duplicate type and allowDup Option", попробовал использовать /allowDup параметр, но он не помог, в итоге сдался и перешёл на костура фоди
Экзешник весит 1 мб, считаю что немного, так что способ рабочий) Спасибо ещё раз) Помню как смотрел этот видос год назад, вот снова понадобился освежить память) Жаль ещё один лайк поставить нельзя)
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?
Здравствуйте. Спасибо за видео, как раз понадобилось склеить.
Может подскажите почему не удается ни установить, ни удалить nuget пакеты через диспетчер пакетов пишет вот это:
Ошибка. (Исключение из HRESULT: 0x80020009 (DISP_E_EXCEPTION))
А через консоль диспетчера пакетов получается. Ни где не могу найти ответа.
Математика от Хачатура 10:56 😂
Где же ты был раньше с этим способом. Я использовал Костуру и думал та, почему мой exe так сильно весит. Очень полезное видео.
При первых моих поисках информации и решений по этой теме, я наткнулся на противников впихивания всё в один exe) советы были такого плана, просто собери свой инсталлятор) мать вашу за ногу зачем мне инсталлятор для проги с пару строчками кода) Немножко не хватало таких видео как у тебя, и даже в большей мере множко) Короче говоря спасибо, за сэкономленные нервы других кто ещё в поиске решений. Но с другой стороны самому даже интересней, хотя времени всегда мало.
Анекдот:
Американский пользователь задаёт вопрос на форуме, ему отвечают.
Израильский пользователь задаёт вопрос на форуме, ему задают встречный вопрос.
Русский пользователь задаёт вопрос на форуме, ему долго объясняют, какой он мудак.
@@XpucT И ещё советуют написать свой язык, если что-то не устраевает)
Вообще отлично. Спасибо !!!
Где ты был раньше когда я для проекта делал подпроект и выпиливал одинаковые куски кода внутрь чтобы не было отдельной dll )))
Друзья, как сделать установщик своей программы, разработанной на .NET C# ?
Может есть уже видео ?
Видео работы с ресурсами уже есть на канале.
Но обычно люди берут что-то готовое. Готовые инсталляторы в сети.
Я рекомендую костылять свой ;)
Спасибо большое)
Где можно добавить самостоятельно отображение пункта(может есть горячие клавиши ?) "открыть окно команд" ?
Win 10 Tweaker ➜ Системная информация ➜ Персональные рекомендации
Привет, Хачатур. Недавно сделал приложение на WF (.NET 6.0 не Framework), и хочу все запихнуть в один исполняемый файл (в папке bin есть dll-ка с таким же названием как exe). Пробовал сделать 1 способом - ничего не получилось (возможно тут надо как-то по другому делать), когда ставил ilmerge даже папка не появилась. Может ты знаешь в чем моя ошибка?
P.S только вес у файла огромный, без понятия как это исправить
Привет 🖐
Вероятно, второй файл не является файлом .NET
Привет, Хачатур. Скажи пожалуйста, как создать задачу в планировщике заданий без библиотеки Microsoft.Win32.TaskScheduler (она весит ~350кб, что много)
upd: сделал через cmd
Красавчик ☝
Привет Христ! как можно использовать "packages costura" для всех проект?
Привет 🖐
Если нужно, чтобы он был подключён к проекту, то только так, как на видео.
Это всё-таки не отдельная программа, которую можно было бы просто бросать в любую папку.
Добрый день, этот способ устарел и не поддерживается в наши дни. Как можно также легко это сделать но уже в наши дни?
Как быть с локализованными формами, где есть 2 или больше языка, для них создается 2 одинаковых файла: имяприложения.resources.dll в папках ru и en, как их внедрить через ilmerge, а то внедряется только английский язык, на русский не меняется
Если русский не применяется, значит что-то не так с кодом.
Строго говоря не так то, что язык берётся из библиотек, а не классов или словарей Dictionary.
@@XpucT если просто запускать приложение, то всё нормально, и язык в библиотеках это если на форме включить Localizable*, и поставить чуть выше язык на русский и редактировать форму на языке, оно создаёт resx файл который потом в эти папки компилится, но дело в том что файлы идентичные. И кстати я не знаю как создавать язык через dictionary, это надо создавать класс с миллионами строк кода или как?
Если дождётесь, то сниму про это видео =)
@@XpucT хорошо, буду ждать сколько нужно, спасибо
подскажи что нужна для вшить у прогу ключ? что нужно для этого?
Не могу найти папки
У тебя супер уроки!
Спасибо за полезные уроки! Подскажите, есть ли способы менять иконку приложения в панели задач во время его работы?
Сделать, например, иконку в виде часов с движущимися стрелками. Или рисовать поверх этой иконки, например, циферку о количестве уведомлений.
Технически это возможно, но нужно постоянно перерисовывать explorer. А это идея плохая.
Спасибо большое
А почему бы просто не добавить эту dll в ресурсы и потом вытаскивать через WriteAllBytes рядом с exe, если её не существует?
ну тебе с этими способами не придется писать дополнительный код, плюс к этому, как я понял, dll не распаковывается в директории рядом с исполняемым файлом, так что нет никаких лишних движений. а если у тебя таких библиотек не 1, а больше? каждую придется из ресурсов доставать, а зачем, когда есть способы удобнее)
Это называется - костыли...
Почему мне нравятся такие уроки?!
Больше понравился способ с Ilmerge, но он не работает с Wpf видимо, либо я что-то не так делаю.
Costura при этом нормально отрабатывает с wpf.
Результаты такие вышли:
Исходный файлик 9кб + библиотека 13кб
В Winforms ilmerge дает итоговый 16кб
В wpf castura дает 40кб, что на самом деле не так и плохо, правда не знаю насколько все будет разрастаться с большими проектами.
Не уверен, но вероятно, проблема может быть в том, что на разных Framework или Core собирались проекты exe и dll.
Очень полезно узнал, спасибо!
Большое спасибо, то что нужно
Хачатур здравствуй, кажись второй способ больше не актуален, папка не создается в корневом каталоге проекта
Есть еще ILRepack более "продвинутая" версия ILMerge с поддержкой дополнительных функций, если кому-то нужны...
Как всегда топово!))
Доброго времени суток ! XpucT и Зрители ,
Шикарный (07:39 Второй способ)
Понятно что Иконку ,Описание и Манифест
Можно исправить через : (Restorator ) Или (Resource Hacker)
Вопрос не вывозит ли это дополнительных детектов у паранойяльных ANTI V.irus )
PS ; Спасибо за видео не знал этот способ.
Нет, антивирусы не будут ругаться, т.к. нет никакой обфускации и подмены загрузчика.
Я бы посмотрел бы как бы в C# взаимодействовать со сторонними процессами , там надпись какую нибудь считать . За фишку с exe спасибо . Лайк
Привет, не могу склеить свой 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 Отправил два сообщения со ссылками на скриншоты с имгура, но видимо их сожрала автомодерация ютуба
Отличное видео! А будет ли что-то наподобие практики создания приложений небольших, чтобы многое объединить?
Мощь!
в cmd можно табы юзать для дополнения имен файлов
Привет, где можно скачать фон рабочего стола
как у тебя?
Привет 🖐
Держи ➜ i.imgur.com/gaRA71U.jpg
@@serpotapov Спасибо
Не собираюсь ничего писать, но всё равно интересно!
ХрисТ пожалуйста сделайте свой телеграм группу канал в этом видео вы мне очен помогли я помню как установил пакеты для работы с реестра winregistry и там появлялся 10 .dll .json файлов
Спасибо!
Оба варианта подходят для WPF?
Совершенно верно. На WPF и первый и второй идентичны, что на Windows Forms.
@@XpucT было бы не лишним добавить пару слов про встроенную возможность VS , она ведь из коробки умеет паковать в один ехе , правой кнопкой мыши по проекту .. опубликовать .. автономно.. (один раз мастер публикации настроил и все ,дальше одним кликом пакует).
К илмерджу можно bat создать, который будет автоматически все файлы внутри папки пихать через илмердж в ехе
А как батник может выглядеть, если название проектов и длл могут отличаться
👍
Что за тема на VS?
Привет 🖐
Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Хачатур работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Хачатур рассказывал в видео для спонсоров:
ruclips.net/user/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 с чем-то не поддерживающимся.
Полезный видос :D У меня вопрос: Проги на c# легко декомпилировать, возможно как-то защитить exe от этого?
Привет 🖐
Ответ Хачатура ➜ ruclips.net/video/7fRrd0litOA/видео.html&lc=UgwggBxoB3d2DJHNj0J4AaABAg
@@serpotapov в этом видео нету ответа на мой вопрос
Нажми на ссылку и попадёшь на видео.
Останови видео и прокрути вниз в комменты.
Самый первый вопрос и Мой ответ - это и есть прямая ссылка, данная Сергеем выше.
@@XpucT Спасибо огромное.
Не выходит, может кто сможет подсказать почему?
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)
В ошибке ответ.
Файла нет, чтобы склеивать. Сначала соберите.
Хачатур в ударе.
Привет.
Забыл как подключить С.М()
Как усатый помощник?
Привет ему.
ВсЁ. Всех Благ. пока пока
Привет
В первом уроке показывал как библиотеку подключать =)
Просто добавляешь ссылку в Ссылках в Обозревателе на свой dll.
Но лучше видос пересмотри =)
Норм, уже пересмотрел.
Хотел пошутить
с C.M();
всё это лишь для собственных ДЛЛ, сторонние не работают так как те кто делает ДЛЛ тоже не дураки, защита работает чётко
Зачем склеивать 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# - это бесполезно. А вот сделать закрыть от реверса - можно. Я вот поставил задачу и выполнил. Заодно хакеров потроллил и полтора года за нос водил =)
можно ли EXE конвертировать в DLL?