Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Лучшая среда программирования, от декомпиляции.

Тема в разделе "[Архив] Помощь", создана пользователем NiFo, 10 май 2013.

  1. Автор темы
    NiFo

    NiFo Активный участник

    Баллы:
    63
    Имя в Minecraft:
    NiFo
    Здравствуйте, дорогие форумчани, хотел услышать, конкретную критику, насчёт защиты программы от декомпиляции. Собственно вопрос: На чём лучше писать чтобы затруднить декомпиляцию?. Посмотрел интерент в суде по всему java программы декомпилируються в код на раз-два. Так ли это? Как с этим дела в C++, С#?.
     
  2. Хостинг MineCraft
    <
  3. Raptor2108

    Raptor2108 Старожил Пользователь

    Баллы:
    173
    Skype:
    Raptor210818
    Имя в Minecraft:
    Raptor2108
    В C# чуть лучше чем в java. в плане безопасности лучше использовать C++.
     
  4. cFroZontle

    cFroZontle Активный участник

    Баллы:
    63
    Имя в Minecraft:
    cFroZontle
    Ничего не защитит от ручной декомпиляции, специалист все равно разберется. Для автоматической же C++ существенно лучше в этом плане — бинарник почти не хранит метаинформации о коде, соответственно и разобрать программе его сложнее.
    Из 3 языков, C#, Java и C++ сложнее всего декомпилировать C++, так как C++ компилируется в ассемблерный код, тогда как Java и C# в промежуточный (IL) код. Хотя и существуют обфускаторы, которые помогают сильно затруднить декомпиляцию C# и Java. Не до такой степени, как C++, но разбор программ после обфускации может также занять длительное время.
     
    ВремяПриключений и NiFo нравится это.
  5. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Но у c++ лаунчеров есть проблема - они используют командную строку для запуска майнкрафта которую легко перехватить.
     
  6. ptnk

    ptnk Старожил Пользователь

    Баллы:
    173
    Бла-бла :3.Не обязательно. У java есть нативная часть.
     
  7. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Ты правда думаешь что тс это осилит?
    (Если он даже не знает что труднее декомпилить.)
     
    ВремяПриключений нравится это.
  8. ptnk

    ptnk Старожил Пользователь

    Баллы:
    173
    Да тут мало кто осилить большее, чем подправить чужие исходники :3. Некоторые и не смогут кнопочку добавить.
     
  9. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Знаешь ли на awt кнопочку реально трудно спозиционировать, так что не надо тут про кнопочки.
    (Именно поэтому я пересел на SWT)
    В итоге подправить чужие сырцы легче чем кнопку добавить.
     
    Сникерсни нравится это.
  10. Автор темы
    NiFo

    NiFo Активный участник

    Баллы:
    63
    Имя в Minecraft:
    NiFo
    Вообще-то прежде чем писать ответ, вы головой своё пустой думали? . Я написал какой язык программирования более безопасный, и услышать критику о промежуточном (IL) коде в целом. А не чипуху нести про декомпиляцию и добавление кнопок.
     
  11. ptnk

    ptnk Старожил Пользователь

    Баллы:
    173
    :3. Уже второй признак легкой наркомании наблюдаю. AWT уже давно пересмотрели, никто в здравом уме не будет это юзать, давно уже учли все ошибки, переставли юзать тяжеловесные контролы и перешли на легковесные. И появился swing - легкий, гибкий, удобный, платформонезависимый, в качетсве решения всех тех проблем, которые были. >.<. :3.
     
    slavik123123123 нравится это.
  12. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Окей тогда ответ - байткод java легко декомпилится, даже если прошифруешь классы всё равно сдампят JVM, так что java легко декомпилируется, C# вроде как хорошо декомпилится dotpeek'ом, и обфускация там совсем никакая, иначе вылетать начинает. c++ дкомпилится в asm команды, а спецов по asm мало.
    Так что наиболее защищён от декомпиляции - c++[DOUBLEPOST=1368219948,1368219673][/DOUBLEPOST]
    И всё равно даже в swing я не могу задать кнопку по координатам и размерам, а должен заталкивать всё в GridLayout - да ну нафиг, или я неправильно из туториалов понял про swing?
     
  13. cFroZontle

    cFroZontle Активный участник

    Баллы:
    63
    Имя в Minecraft:
    cFroZontle
    Принципиальноe отличие в тom, что АВТ - "тяжeлые" компоненты . Он берут под себя системные ресурсы.Swing - компоненты простo рисуются, a потому намного эффективнee. Кромe тогo, библиотеки частично перекрываются, Свинг опирается на АВТ.
    Если говорить о разницe Button - JButton и.т.п, тo свинговские компоненты круче.[DOUBLEPOST=1368221209,1368220013][/DOUBLEPOST]
    Могу ещё добавить, если вам будет интересно.
    В скомпилированной программе на C++ можно найти текстовые строки, имена фукнций и классов. Для того чтобы скрыть значение текстовых строк — программа может хранить их в зашифрованном виде, и расшифровывать перед использованием. Это сильно затруднит понимание того какое именно сообщение собиралась вывести программа, и следовательно что делает та или иная часть кода. Однако у нас ещё остались имена функций. По идее их можно вырезать используя strip но гораздо смешнее изменить их так чтобы важные вам фукнции ( например isAppRegistered() ) работали не совсем так как предполагается, например эта фукнция может вызываться по таймеру раз в 10 секунд, хэшировать значения разных переменных и возвращать какой-то результат. Реальная же фукцния проверки регистрации будет называться debugPrintString() и… не будет вызывать никаких окон оповещающих о том что что-то случилось не так. Эти окна опять вызовуться из другого потока, по таймеру в случае если наша debugPrintString() изменила пару значений.
     
  14. Автор темы
    NiFo

    NiFo Активный участник

    Баллы:
    63
    Имя в Minecraft:
    NiFo
    Имеет ли вообще смысл заморачиваться на эту тему? Велика ли вероятность (в случае обычного софта, конечно, не секретного с обуфикаций C++), что кто-то будет копаться в коде?. Слышал ещё что при использование(KLP) для C# можно получить на много, эффективную защиту чем на С++. Правда ли это?
     
  15. cFroZontle

    cFroZontle Активный участник

    Баллы:
    63
    Имя в Minecraft:
    cFroZontle
    Вероятность — есть.
    Заморачиваться — в определённой степени. Выбирать язык по одному этому критерию я бы не стал.
    А вот обфускацией в случае C# или Java заморочился бы — оно не требует больших усилий.
    После того, как вы отдали скомпилированную (но не обработанную никакими средствами защиты) .net-сборку (написанную на C#, например), то считайте, что отдали и исходники. ILSpy отлично разбирает сборку на исходники и генерирует solution, который отлично открывается в в Visual Studio.
     
  16. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
  17. ptnk

    ptnk Старожил Пользователь

    Баллы:
    173
    Ну ни на раз два, а если приспичит, что аж огонь из задницы, то легко.
     

Поделиться этой страницей