Уроки C# - склеиваем exe и dll

Поділитися
Вставка
  • Опубліковано 9 лип 2024
  • 00:00 Первый способ
    07:39 Второй способ
    Донаты ➜ t.me/win10tweaker/171
    Эксклюзив для спонсоров ➜ / xpuct
    Если недоступна спонсорка ➜ boosty.to/xpuct
    #Costura #Merge #Склеить
  • Наука та технологія

КОМЕНТАРІ • 146

  • @RaptorTMP
    @RaptorTMP 3 роки тому +25

    Хоспади, мужик, я 3 недели страдал и так не запустил его. Где ты раньше был? :D
    Наконец то уберу костыли и закончу свой проект. Спасибо тебе огромное!!!)))

  • @zmeyskiyyy
    @zmeyskiyyy Рік тому +1

    Мужик, очень хороший контент, и шутки крутые, продолжай дальше снимать уроки по C#, ну а я покачто подпишусь.

  • @dy0mber847
    @dy0mber847 3 роки тому +9

    Как же я рад твоей активности в плане выхода роликов, спасибо большое, жду еще!

  • @user-tl6gq2tj7c
    @user-tl6gq2tj7c Рік тому +1

    Спасибо большое за понятное объяснение)) Покажу это видео своему коллеге, он не верил что можно все dll запихнуть в один экзешник))

  • @gayratravshanov8409
    @gayratravshanov8409 2 роки тому +1

    Вообще отлично. Спасибо !!!

  • @user-tl6gq2tj7c
    @user-tl6gq2tj7c Місяць тому

    Первый раз пользовался вторым способом т.к. была всего 1 длл
    А сейчас возникла ситуация с WPF проектом в который установлена хренова гора зависимостей и я эти все dll вписал в батник, запустил его... ноо он выдал "Duplicate type and allowDup Option", попробовал использовать /allowDup параметр, но он не помог, в итоге сдался и перешёл на костура фоди
    Экзешник весит 1 мб, считаю что немного, так что способ рабочий) Спасибо ещё раз) Помню как смотрел этот видос год назад, вот снова понадобился освежить память) Жаль ещё один лайк поставить нельзя)

  • @BadDa3mon
    @BadDa3mon 3 роки тому +2

    Ты прям чувствуешь, что мне нужно. Давно хотел узнать об этом, спасибо большое

  • @SHILY-PROJECT
    @SHILY-PROJECT 3 роки тому +3

    Максимально полезная штука!
    Благодарю, Хачатур!
    Даже и не знал, что есть такие способы...
    Слыхал только про "ILRepack", но толком не юзал:)

    • @XpucT
      @XpucT  3 роки тому +1

      ILRepack - это как раз продолжение проект ILMerge =)

    • @SHILY-PROJECT
      @SHILY-PROJECT 3 роки тому

      @@XpucT О, спасибо, буду знать теперь:)

  • @vladislavkresov2910
    @vladislavkresov2910 3 роки тому +3

    Каждый день что-то новое узнаю. Спасибо!

  • @kinargard3955
    @kinargard3955 2 роки тому +1

    Спасибо большое)

  • @Eekzolt
    @Eekzolt 3 роки тому +2

    Сам на C# давно уже не пишу, но ваши видео гипнотически интересные) Спасибо!

  • @radelnigma7662
    @radelnigma7662 2 роки тому +1

    Здравствуйте. Спасибо за видео, как раз понадобилось склеить.
    Может подскажите почему не удается ни установить, ни удалить nuget пакеты через диспетчер пакетов пишет вот это:
    Ошибка. (Исключение из HRESULT: 0x80020009 (DISP_E_EXCEPTION))
    А через консоль диспетчера пакетов получается. Ни где не могу найти ответа.

  • @wwlinuxoff
    @wwlinuxoff Місяць тому +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?

  • @t1ran153
    @t1ran153 3 роки тому +1

    Спасибо большое

  • @user-xy9hf5tf3e
    @user-xy9hf5tf3e 3 роки тому +1

    Где ты был раньше когда я для проекта делал подпроект и выпиливал одинаковые куски кода внутрь чтобы не было отдельной dll )))

  • @leshii-2000
    @leshii-2000 Рік тому

    подскажи что нужна для вшить у прогу ключ? что нужно для этого?

  • @soohoy8256
    @soohoy8256 Рік тому +2

    Математика от Хачатура 10:56 😂

  • @user-hr9ot3mx1o
    @user-hr9ot3mx1o 3 роки тому +2

    Спасибо за полезные уроки! Подскажите, есть ли способы менять иконку приложения в панели задач во время его работы?
    Сделать, например, иконку в виде часов с движущимися стрелками. Или рисовать поверх этой иконки, например, циферку о количестве уведомлений.

    • @XpucT
      @XpucT  3 роки тому +1

      Технически это возможно, но нужно постоянно перерисовывать explorer. А это идея плохая.

  • @alexandertovstik7540
    @alexandertovstik7540 3 роки тому +2

    Где же ты был раньше с этим способом. Я использовал Костуру и думал та, почему мой exe так сильно весит. Очень полезное видео.

  • @user-yp5bm4vz5l
    @user-yp5bm4vz5l 3 роки тому +1

    Где можно добавить самостоятельно отображение пункта(может есть горячие клавиши ?) "открыть окно команд" ?

    • @XpucT
      @XpucT  3 роки тому +1

      Win 10 Tweaker ➜ Системная информация ➜ Персональные рекомендации

  • @MysteryMarshak
    @MysteryMarshak 3 роки тому +2

    Привет, Хачатур. Скажи пожалуйста, как создать задачу в планировщике заданий без библиотеки Microsoft.Win32.TaskScheduler (она весит ~350кб, что много)
    upd: сделал через cmd

    • @XpucT
      @XpucT  3 роки тому +2

      Красавчик ☝

  • @sscovideo
    @sscovideo 2 роки тому +1

    Привет Христ! как можно использовать "packages costura" для всех проект?

    • @XpucT
      @XpucT  2 роки тому

      Привет 🖐
      Если нужно, чтобы он был подключён к проекту, то только так, как на видео.
      Это всё-таки не отдельная программа, которую можно было бы просто бросать в любую папку.

  • @777yur0k
    @777yur0k 3 роки тому +3

    Большое спасибо за очень простое объяснение таких вещей. До этого, когда я пытался в гугле вычитать как это можно было бы сделать, местные описания либо вводили в ужас, либо ничего толком не объясняли, а вы всё крайне наглядно и просто показали. Тем более меня искренне восхищает, что вы сделали целый урок по моей просьбе в комментах. В общем, моё уважение от всей души. Только... вы предпочитаете сидеть на .Net Framework 4.7.1, когда я же обычно использую .net 5. И я что-то сейчас по вашему уроку кнопочки потыкал, и... с представленными вариантами на .net 5 не получилось. Но я только сейчас и в этом видео увидел и осознал, что... на .Net Framework 4.7.1 проект ПО ДЕФОЛТУ компилируется в один единственный рабочий exe. А мне именно это и надо. Мне не нужна мультиплатформенность и прочая лабуда, не нужно интегрировать сторонние dll файлы. Я просто не хочу таскать за exe dll и runtimeconfig. А ларчик просто открывался... Я... Просто даже не знал, что на данной версии .net такое возможно, ибо я не так давно пришёл в чистый C# и сразу начал тыкать в последние версии .net, думая, что они лучше. И не сказать, что мне сильно мешает ещё 2 файла в довесок к exe. Но раздражает и появляются навязчивые идеи всё же как-то сделать всё в одном файле. В общем, так или иначе ваши уроки помогли. Сейчас вот быстро перенёс проект на 4.7.1 по вашему совету, теперь радуюсь. :)

  • @risoutsoring
    @risoutsoring 3 роки тому +2

    У тебя супер уроки!

  • @vosilam7937
    @vosilam7937 3 роки тому +1

    Очень полезно узнал, спасибо!

  • @hamilt
    @hamilt Рік тому +1

    Привет, Хачатур. Недавно сделал приложение на WF (.NET 6.0 не Framework), и хочу все запихнуть в один исполняемый файл (в папке bin есть dll-ка с таким же названием как exe). Пробовал сделать 1 способом - ничего не получилось (возможно тут надо как-то по другому делать), когда ставил ilmerge даже папка не появилась. Может ты знаешь в чем моя ошибка?

    • @hamilt
      @hamilt Рік тому

      P.S только вес у файла огромный, без понятия как это исправить

    • @XpucT
      @XpucT  Рік тому +1

      Привет 🖐
      Вероятно, второй файл не является файлом .NET

  • @kalomka
    @kalomka 3 роки тому +1

    Как быть с локализованными формами, где есть 2 или больше языка, для них создается 2 одинаковых файла: имяприложения.resources.dll в папках ru и en, как их внедрить через ilmerge, а то внедряется только английский язык, на русский не меняется

    • @XpucT
      @XpucT  3 роки тому

      Если русский не применяется, значит что-то не так с кодом.
      Строго говоря не так то, что язык берётся из библиотек, а не классов или словарей Dictionary.

    • @kalomka
      @kalomka 3 роки тому

      @@XpucT если просто запускать приложение, то всё нормально, и язык в библиотеках это если на форме включить Localizable*, и поставить чуть выше язык на русский и редактировать форму на языке, оно создаёт resx файл который потом в эти папки компилится, но дело в том что файлы идентичные. И кстати я не знаю как создавать язык через dictionary, это надо создавать класс с миллионами строк кода или как?

    • @XpucT
      @XpucT  3 роки тому

      Если дождётесь, то сниму про это видео =)

    • @kalomka
      @kalomka 3 роки тому +1

      @@XpucT хорошо, буду ждать сколько нужно, спасибо

  • @user-yp5bm4vz5l
    @user-yp5bm4vz5l 3 роки тому +1

    Друзья, как сделать установщик своей программы, разработанной на .NET C# ?
    Может есть уже видео ?

    • @XpucT
      @XpucT  3 роки тому +1

      Видео работы с ресурсами уже есть на канале.
      Но обычно люди берут что-то готовое. Готовые инсталляторы в сети.
      Я рекомендую костылять свой ;)

  • @GhostRescue
    @GhostRescue 3 роки тому +1

    Большое спасибо, то что нужно

  • @LugAdler
    @LugAdler 3 роки тому +5

    Есть еще ILRepack более "продвинутая" версия ILMerge с поддержкой дополнительных функций, если кому-то нужны...

  • @roflyan7549
    @roflyan7549 Рік тому +1

    Больше понравился способ с Ilmerge, но он не работает с Wpf видимо, либо я что-то не так делаю.
    Costura при этом нормально отрабатывает с wpf.
    Результаты такие вышли:
    Исходный файлик 9кб + библиотека 13кб
    В Winforms ilmerge дает итоговый 16кб
    В wpf castura дает 40кб, что на самом деле не так и плохо, правда не знаю насколько все будет разрастаться с большими проектами.

    • @XpucT
      @XpucT  Рік тому

      Не уверен, но вероятно, проблема может быть в том, что на разных Framework или Core собирались проекты exe и dll.

  • @orakul_azovstal
    @orakul_azovstal 3 роки тому +1

    При первых моих поисках информации и решений по этой теме, я наткнулся на противников впихивания всё в один exe) советы были такого плана, просто собери свой инсталлятор) мать вашу за ногу зачем мне инсталлятор для проги с пару строчками кода) Немножко не хватало таких видео как у тебя, и даже в большей мере множко) Короче говоря спасибо, за сэкономленные нервы других кто ещё в поиске решений. Но с другой стороны самому даже интересней, хотя времени всегда мало.

    • @XpucT
      @XpucT  3 роки тому +1

      Анекдот:
      Американский пользователь задаёт вопрос на форуме, ему отвечают.
      Израильский пользователь задаёт вопрос на форуме, ему задают встречный вопрос.
      Русский пользователь задаёт вопрос на форуме, ему долго объясняют, какой он мудак.

    • @orakul_azovstal
      @orakul_azovstal 3 роки тому

      @@XpucT И ещё советуют написать свой язык, если что-то не устраевает)

  • @3x__
    @3x__ Рік тому

    👍

  • @user-si6ww3gi2l
    @user-si6ww3gi2l 2 роки тому

    в cmd можно табы юзать для дополнения имен файлов

  • @nullabIe
    @nullabIe 3 роки тому +1

    Отличное видео! А будет ли что-то наподобие практики создания приложений небольших, чтобы многое объединить?

  • @chechensoft_ru
    @chechensoft_ru 3 роки тому +1

    Спасибо!

  • @chechensoft_ru
    @chechensoft_ru 3 роки тому +1

    Почему мне нравятся такие уроки?!

  • @eswcpoker6562
    @eswcpoker6562 3 роки тому +1

    Я бы посмотрел бы как бы в C# взаимодействовать со сторонними процессами , там надпись какую нибудь считать . За фишку с exe спасибо . Лайк

  • @messieurs12
    @messieurs12 Рік тому +1

    Не могу найти папки

  • @biohazardmars
    @biohazardmars 3 роки тому

    ХрисТ пожалуйста сделайте свой телеграм группу канал в этом видео вы мне очен помогли я помню как установил пакеты для работы с реестра winregistry и там появлялся 10 .dll .json файлов

  • @BlendLogDev
    @BlendLogDev 3 роки тому +1

    А почему бы просто не добавить эту dll в ресурсы и потом вытаскивать через WriteAllBytes рядом с exe, если её не существует?

    • @Andymit
      @Andymit 3 роки тому +1

      ну тебе с этими способами не придется писать дополнительный код, плюс к этому, как я понял, dll не распаковывается в директории рядом с исполняемым файлом, так что нет никаких лишних движений. а если у тебя таких библиотек не 1, а больше? каждую придется из ресурсов доставать, а зачем, когда есть способы удобнее)

    • @LugAdler
      @LugAdler 3 роки тому

      Это называется - костыли...

  • @C6OI
    @C6OI 2 роки тому

    Привет, не могу склеить свой exe с dll
    Почему то раньше в папке bin лежал только один exe и два json файла, но сейчас при сборке проекта в папке оказываются те-же два json файла, exe и dll
    Без dll программа просто не запускается, даже не выдаёт никаких ошибок
    Пробовал костуру, ilmerge, ilrepack, enigmavm, ничего не получается
    Костура не склеивает, ilmerge и ilrepack выдают такую же ошибку как у комментаторов снизу, enigmavm вроде склеивает, но программа не запускается и выдаёт ошибку "необходимо установить .net desktop runtime 6.0.6", но даже после установки вылезает эта же ошибка
    Есть ли еще какие-то способы склеивания?

    • @XpucT
      @XpucT  2 роки тому

      Привет 🖐
      Откуда json? Это Твои файлы?

    • @C6OI
      @C6OI 2 роки тому

      @@XpucT Нет, файлы `название_проекта.deps.json` и `название_проекта.runtimeconfig.json`
      Они создаются сами при сборке

    • @XpucT
      @XpucT  2 роки тому

      @@C6OI Что-то непонятное Ты делаешь, если с exe появляются json.
      Эти это Твои json, то их нужно класть в ресурсы, чтобы не было зависимостей.
      Нужно разобраться, что они делают. Но их точно не должно лежать рядом.

    • @C6OI
      @C6OI 2 роки тому

      @@XpucT Отправил два сообщения со ссылками на скриншоты с имгура, но видимо их сожрала автомодерация ютуба

  • @jokeer3148
    @jokeer3148 3 роки тому +4

    К илмерджу можно bat создать, который будет автоматически все файлы внутри папки пихать через илмердж в ехе

    • @vadymkon
      @vadymkon Рік тому

      А как батник может выглядеть, если название проектов и длл могут отличаться

  • @acer6788
    @acer6788 Рік тому

    Хачатур здравствуй, кажись второй способ больше не актуален, папка не создается в корневом каталоге проекта

  • @ererka3929
    @ererka3929 3 роки тому +2

    Ставлю лайк до просмотра! Знаю, что будет круто и по делу. Well done commander )))

  • @PravdaGe
    @PravdaGe 3 роки тому +1

    Доброго времени суток ! XpucT и Зрители ,
    Шикарный (07:39 Второй способ)
    Понятно что Иконку ,Описание и Манифест
    Можно исправить через : (Restorator ) Или (Resource Hacker)
    Вопрос не вывозит ли это дополнительных детектов у паранойяльных ANTI V.irus )
    PS ; Спасибо за видео не знал этот способ.

    • @XpucT
      @XpucT  3 роки тому

      Нет, антивирусы не будут ругаться, т.к. нет никакой обфускации и подмены загрузчика.

  • @hotbabybox
    @hotbabybox 3 місяці тому

    всё это лишь для собственных ДЛЛ, сторонние не работают так как те кто делает ДЛЛ тоже не дураки, защита работает чётко

  • @alexdrake913
    @alexdrake913 3 роки тому +1

    Полезный видос :D У меня вопрос: Проги на c# легко декомпилировать, возможно как-то защитить exe от этого?

    • @serpotapov
      @serpotapov 3 роки тому +1

      Привет 🖐
      Ответ Хачатура ➜ ua-cam.com/video/7fRrd0litOA/v-deo.html&lc=UgwggBxoB3d2DJHNj0J4AaABAg

    • @alexdrake913
      @alexdrake913 3 роки тому

      @@serpotapov в этом видео нету ответа на мой вопрос

    • @XpucT
      @XpucT  3 роки тому

      Нажми на ссылку и попадёшь на видео.
      Останови видео и прокрути вниз в комменты.
      Самый первый вопрос и Мой ответ - это и есть прямая ссылка, данная Сергеем выше.

    • @alexdrake913
      @alexdrake913 3 роки тому

      @@XpucT Спасибо огромное.

  • @lores1337
    @lores1337 3 роки тому +1

    Не собираюсь ничего писать, но всё равно интересно!

  • @marsm6619
    @marsm6619 Рік тому +1

    Привет.
    Забыл как подключить С.М()
    Как усатый помощник?
    Привет ему.
    ВсЁ. Всех Благ. пока пока

    • @XpucT
      @XpucT  Рік тому

      Привет
      В первом уроке показывал как библиотеку подключать =)
      Просто добавляешь ссылку в Ссылках в Обозревателе на свой dll.
      Но лучше видос пересмотри =)

    • @marsm6619
      @marsm6619 Рік тому +1

      Норм, уже пересмотрел.
      Хотел пошутить
      с C.M();

  • @loger_1328
    @loger_1328 3 роки тому +1

    Как всегда топово!))

  • @eddypartey1075
    @eddypartey1075 3 роки тому +1

    Оба варианта подходят для WPF?

    • @XpucT
      @XpucT  3 роки тому +2

      Совершенно верно. На WPF и первый и второй идентичны, что на Windows Forms.

    • @VERTinBY
      @VERTinBY 3 роки тому +1

      @@XpucT было бы не лишним добавить пару слов про встроенную возможность VS , она ведь из коробки умеет паковать в один ехе , правой кнопкой мыши по проекту .. опубликовать .. автономно.. (один раз мастер публикации настроил и все ,дальше одним кликом пакует).

  • @Oleksandr-Nikolaev
    @Oleksandr-Nikolaev 3 роки тому +2

    Хачатур в ударе.

  • @progfa6934
    @progfa6934 3 роки тому +2

    Что за тема на VS?

    • @XpucT
      @XpucT  3 роки тому +2

      Привет 🖐
      Это не просто тема, это полностью авторская переработка всего интерфейса Visual Studio, над которой Хачатур работал 3 месяца. Тут не просто красиво, а полезно для глаз, подробнее об этом Хачатур рассказывал в видео для спонсоров:
      ua-cam.com/users/XpucTcommunity
      Тема, доп.материалы и эксклюзив становится доступным сразу, как становишься спонсором канала.

    • @progfa6934
      @progfa6934 3 роки тому

      @@XpucT Спасиб большое!

  • @semen083
    @semen083 Рік тому

    Но ведь есть стандартная публикация приложения, где можно выбрать пункт склеить в один файл.

  • @serpotapov
    @serpotapov 3 роки тому +1

    Мощь!

  • @dmitrydk357
    @dmitrydk357 3 роки тому +2

    Привет, где можно скачать фон рабочего стола
    как у тебя?

    • @serpotapov
      @serpotapov 3 роки тому +2

      Привет 🖐
      Держи ➜ i.imgur.com/gaRA71U.jpg

    • @dmitrydk357
      @dmitrydk357 3 роки тому

      @@serpotapov Спасибо

  • @Username-lx3ud
    @Username-lx3ud 3 роки тому +1

    А я чтобы не заморачиваться с командной строкой набросал себе GUI😁

  • @dmimal8401
    @dmimal8401 2 роки тому +1

    9:20 у меня нет "открыть окно команд"

    • @XpucT
      @XpucT  2 роки тому

      Win 10 Tweaker ➜ Системная информация ➜ Персональные рекомендации
      Там будет предложение вернуть этот пункт.

    • @dmimal8401
      @dmimal8401 2 роки тому

      @@XpucT что-то не могу найти этот пункт

    • @XpucT
      @XpucT  2 роки тому

      @@dmimal8401 i.imgur.com/0pFbk9R.png

    • @dmimal8401
      @dmimal8401 2 роки тому

      @@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)
      мм, не работает. или я что-то не так делаю?

    • @XpucT
      @XpucT  2 роки тому

      @@dmimal8401 судя по ошибке Ты пытаешься склеить не exe с чем-то не поддерживающимся.

  • @user_PsevdonimyEtoPolnyjOtstoj

    Зачем склеивать exe и dll?

    • @XpucT
      @XpucT  Рік тому

      Довольно у многих есть интерес не держать 10 файлов, а всё иметь в одном исполняемом файле.

    • @user_PsevdonimyEtoPolnyjOtstoj
      @user_PsevdonimyEtoPolnyjOtstoj Рік тому

      @@XpucT можно всё держать в одном файле.

    • @XpucT
      @XpucT  Рік тому

      @@user_PsevdonimyEtoPolnyjOtstoj если речь о ресурсах, то да, то не со всеми dll такое канает.

  • @illson4666
    @illson4666 3 роки тому +1

    Как защитить свой проект от мамкиных реверсеров?

    • @gerodstudio
      @gerodstudio 3 роки тому

      Обфускация кода, но проект всë равно вскроют, хочешь ты этого или нет. Если ты хочешь коммерческий проект, то делай программу на с++ на клиентской части, а важный функционал (активация допустим), то сделать на сервере и через API работать с серверной частью в клиенте

    • @XpucT
      @XpucT  3 роки тому +4

      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 и всё в таком духе. Поэтому также готовься, что буду появляться выскочки, которые таким образом себя пытаются похвалить. Однако, сами, конечно, они ничего не стоят. И вот уже год все умолкли и лишь спрашивают у Меня, как Я так умудрился и всё в таком духе. Особый бугурт у людей вызывает то, что Я проверяю целостность программы и размер файла во время запуска. Ведь мы же не можем знать, сколько точно в байтах будет весить программа, особенно после обфускации.... В общем, ходов много. И чем больше заложишь в софт, тем надёжнее. Другой вопрос: а нужно ли это? Мне лично нужно с целью узнать степень надёжности и, возможно, сделать свой платный автоматизированный инструмент для таких, как Ты. Кликнул и защитил. Но пока Я, как и многие другие, далеки от совершенства. Но это лишь вызов для Меня =) И должен быть для Тебя 👍

    • @XpucT
      @XpucT  3 роки тому +3

      Человек, кстати, спросил не прообфускацию и не с целью спрятать код. На C# - это бесполезно. А вот сделать закрыть от реверса - можно. Я вот поставил задачу и выполнил. Заодно хакеров потроллил и полтора года за нос водил =)

  • @Kadianka
    @Kadianka 2 роки тому

    Не выходит, может кто сможет подсказать почему?
    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)

    • @XpucT
      @XpucT  2 роки тому

      В ошибке ответ.
      Файла нет, чтобы склеивать. Сначала соберите.