|
Землянин
34 / 34 / 16
Регистрация: 15.01.2013
Сообщений: 312
|
|
Защита программы от декомпилятора01.02.2013, 19:27. Показов 15936. Ответов 99
Метки нет (Все метки)
0
|
|
| 01.02.2013, 19:27 | |
|
Ответы с готовыми решениями:
99
Выбор декомпилятора для .NET Защита программы от НСД. Защита путем шифрования части программы на флеш-диске или флешке Использование flash-декомпилятора |
|
62 / 62 / 5
Регистрация: 05.01.2013
Сообщений: 235
|
||
| 15.02.2013, 22:26 | ||
0
|
||
|
Master of Orion
|
||||||||||||||
| 15.02.2013, 22:28 | ||||||||||||||
C++ http://ideone.com/23N3nB
http://ideone.com/7TTk9l
0
|
||||||||||||||
|
62 / 62 / 5
Регистрация: 05.01.2013
Сообщений: 235
|
|||
| 15.02.2013, 22:32 | |||
0
|
|||
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|
| 15.02.2013, 22:35 | |
|
Psilon, я надеюсь вы не забыли,что первая компиляция на шарпе занимает много времени,а все последующие уже могут тягаться)
0
|
|
|
62 / 62 / 5
Регистрация: 05.01.2013
Сообщений: 235
|
|
| 15.02.2013, 22:39 | |
|
0
|
|
|
Master of Orion
|
|
| 15.02.2013, 22:40 | |
|
Winhttp,
![]() нотариально заверенный скриншот вам не приложить? Я то могу привести цитаты того же Рихтера, но он же тоже может оказаться "недостоверным источником". В общем, nuff said Noob.net, я-то помню. Только видимо некоторые путают шарп и джаву версии 1.4
0
|
|
|
Higher
|
||
| 15.02.2013, 23:45 | ||
|
Без всяких ключей у меня ваш код отрабатывает за 4.4 секунды, с двумя флагами(-O2 и -unsafe-math-optimizations) выдает тот же самый ответ за 3.5 секунды. Но вообще да, шарп за счет платформо-зависимых оптимизаций в некоторых случаях может в 20 c лишним раз обгонять плюсы по скорости.
0
|
||
|
62 / 62 / 5
Регистрация: 05.01.2013
Сообщений: 235
|
|||||||||||
| 15.02.2013, 23:51 | |||||||||||
|
Psilon, да да, мне обьязательно нотариально заверенный скрин. по другому никак
![]() исходники: Кликните здесь для просмотра всего текста
результаты
0
|
|||||||||||
|
Higher
|
|
| 16.02.2013, 00:09 | |
|
Winhttp, вы же ответ не выводите, следовательно, ничего не вычисляется (компилятор тупо выкидывает цикл из кода).
P.S. Интеловский компилятор посчитал за 3 секунды ровно :) Добавлено через 5 минут P.P.S. интеловский компилятор просто распараллелил цикл(да, плюсовые компиляторы и такое умеют).
1
|
|
|
Master of Orion
|
|||
| 16.02.2013, 00:10 | |||
|
Winhttp, видимо, вы плохо читаете, я вас распишу непонятную (очевидно) фразу товарища diagonа
Кликните здесь для просмотра всего текста
Добавлено через 1 минуту Я для вас ключевые моменты даже жирным выделил, чтоб не утруждались лишний раз чтением документации
1
|
|||
|
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
|
|||
| 16.02.2013, 15:22 | |||
|
Кликните здесь для просмотра всего текста
Связь С++ с языками Java и С#
Помимо С++, существуют два других современных языка проіраммирования: Java и С#. Язык Java разработан компанией Sun Microsystems, а С# — компанией Microsoft. Поскольку иногда возникает путаница относительно того, какое отношение эти два языка имеют к С++, попробуем внести ясность в этот вопрос. С++ является родительским языком для Java и С#. И хотя разработчики Java и С# добавили к первоисточнику, удалили из него или модифицировали различные средства, в целом синтаксис этих трех языков практически идентичен. Более того, объектная модель, используемая С++, подобна объектным моделям языков Java и С#. Наконец, очень сходно общее впечатление и ощущение от использования всех этих языков. Это значит, что, зная С++, вы можете легко изучить Java или С#. Схожесть синтаксисов и объектных моделей — одна из причин быстрого освоения (и одобрения) этих двух языков многими опытными С++-программи-стами. Обратная ситуация также имеет место: если вы знаете Java или С#, изучение С++ не доставит вам хлопот. Основное различие между С++, Java и С# заключается в типе вычислительной среды, для которой разрабатывался каждый из этих языков. С++ создавался с целью написания высокоэффективных программ, предназначенных для выполнения под управлением определенной операционной системы и в расчете на ЦП конкретного типа Например, если вы хотите написать высокоэффективную программу для выполнения на процессоре Intel Pentium под управлением операционной системы Windows, лучше всего использовать для этого язык С++. Языки Java и С# разработаны в ответ на уникальные потребности сильно распределенной сетевой среды Internet. (При разработке С# также ставилась цель упростить создание программных компонентов.) Internet связывает множество различных типов ЦП и операционных систем. Поэтому возможность создания межплатформеиного (совместимого с несколькими операционными средами) переносимого программного кода для Internet при решении некоторых задач стало определяющим условием при выборе языка программирования. Первым языком, отвечающим таким требованиям, был Java. Используя Java, можно написать проірамму, которая будет выполняться в различных вычислительных средах, т.е. в широком диапазоне операционных систем и типов ЦП. Таким образом. Java-программа может свободно "бороздить просторы" Internet. Несмотря на то что Java позволяет создавать переносимый программный код, ко- 28 Глава 1. Основы С++ торый работает в сильно распределенной среде, цена этой переносимости — эффективность. Java-програм мы выполняются медленнее, чем С++-программы. То же справедливо и для С#. Поэтому, если вы хотите создавать высокоэффективные приложения, используйте С++. Если же вам нужны переносимые программы, используйте Java или С#. Спросим у опытного программиста нмннм Вопрос. Каким образом языки Java и Ct позволяют создавать межплатформенные (совместимые с несколькими операционными средами) переносимые программы и почему с помощью С++ невозможно достичь такого же результата? Ответ. Все дело в типе объектного кода, создаваемого компиляторам» В результате работы С++-компилятора мы получаем машинный код, который непосредственно выполняется конкретным центральным процессором (ЦП). Другими словами, С++-компилятор связан с конкретными ЦП и операционной системой. Если нужно выполнить С++-программу под управлением другой операционной системой, необходимо перекомпилировать ее и получить машинный код, подходящий для данной среды. Поэтому, чтобы С++-программа могла выполняться в различных средах, нужно создать несколько выполняемых версии этой программы. Используя языки Java и С#, можно добиться переносимости программа i-го кода за счет специальной компиляции программ, позволяющей перс-вести исходный программный код на промежуточный язык, именуемый псевдокодом. Для Java-программ этот промежуточный язык называют байт-кодом (bytecode), т.е. машинно-независимым кодом,генерируемым Java-компилятором. В результате компиляции С#-нроіраммьі получается не исполняемый код, а файл, который содержит специальный псевдокод, именуемый промежуточным языком Microsoft (Microsoft Intermediare Language — MSIL). В обоих случаях этот псевдокод выполняется специальной операционной системой, которая для Java называется виртуальной машиной Java (Java Virtual Machine — JVM), а для C# — средством Common Language Runtime (CLR). Следовательно, Java-программа сможет выполняться в любой среде, содержащей JVM, а Сопрограмма — в любой среде, в которой реализовано средство CLR. Поскольку специальные операционные системы для выполнения Java-и С#-кода занимают промежуточное местоположение между программой и ЦП, выполнение Java- и Сопрограмм сопряжено с расходом определенных системных ресурсов, что совершенно излишне при выполнении C++-программ. Вот поэтому С++-программы обычно выполняются быстрее, чем эквивалентные программы, написанные на Java и С#.
![]() для меня конечно загадкой пока остается, почему ваши тесты такие. но больше похоже на то, что дело в настройках компилятора с++, возможно и в коде можно чет поправить (я с с++ не очень знаком), и тогда программа с++ обгонит программу, написаную на с# . потому что программа, выполняющаяся из под виртуальной машины никак не может быть шустрее, чем программа, которая напрямую работает с процессором.
0
|
|||
|
Higher
|
|||
| 16.02.2013, 15:30 | |||
|
А в треде идет речь о нативном коде/байткоде. Так вот байткод эффективнее нативного кода. P.S. Для плюсов есть компилятор, умеющий компилировать в байт код, но для винды там пока экспериментальная поддержка. Однако через годик-другой ситуация в корне изменится :)
0
|
|||
|
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
|
||||
| 16.02.2013, 17:31 | ||||
|
Сортировка массива методом пузырька -
C++ - http://ideone.com/QiS0aC
![]() Все таки преподаватель был прав , когда говорил , что сишарп и другие подобные ему языки будут медленней , чем с++. как и Шилдт Добавлено через 3 минуты diagon, байт код выполнется интерпретатором, а интерпретатор уже переводит все это в процессорные команды, нативный код же напрямую работает, или я чет путаю?
Добавлено через 3 минуты да кстати, мы от темы уже сильно отдалились, может следует продолжит дискуссию в другой теме? например сдесь - Разница в скорости выполнение программы C++ или C#
0
|
||||
|
|
||
| 19.02.2013, 21:14 | ||
|
Кстати, вот вы все про супер проекты с тысячами строк, а как быть с маленькими? к примеру - я написал вьювер какого-нибудь VRML. Код там на пару-тройку классов... строк по 30. Как защищать обфускацией такое?
0
|
||
|
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
|
|
| 19.02.2013, 22:47 | |
|
skilllab, почитайте о протекторах. они полностью скрывают код. да и больше чем уверен, что у платных обфускаторов тоже есть такая функция
0
|
|
|
Higher
|
||
| 19.02.2013, 23:19 | ||
|
Зависит от вашего проекта - если он большой, то никто в нем целиком разбираться не будет, проще написать свой. Если вы хотите утаить пару фич, то в этом и только в этом случае обфускация может иметь эффект. Однако если ваши фичи кому-то очень нужны, то обфускация не поможет, она лишь отсрочит неизбежное. Я знаю только один надежный способ - вынести эти фичи в SaaS, но он далеко не всем подходит.
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
||
| 19.02.2013, 23:30 | ||
|
если программа может быть исполнена она может быть и взломана Весь вопрос во времени и в квалификации взломщика(ну и востребованности программы)
0
|
||
|
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
|
|
| 20.02.2013, 12:11 | |
|
вы путаете взлом, и получение начальных исходников. а ведь тема об этом. чтобы скрыть/зашифровать исходник, чтобы его никто не подглядел. а насчет взлома - то согласен, простым отладчиком можно ломать программы, и там есть свои фичи для защиты, но они лишь отсрочивают взлом.
0
|
|
|
Higher
|
||
| 20.02.2013, 15:31 | ||
|
0
|
||
| 20.02.2013, 15:31 | |
|
Простейшая защита программы: где хранить число срабатываний программы? Защита программы
Защита программы Защита программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|