Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Защитить исходный код - сделать его как можно более запутанным.   Найти похожие ветки 

 
Ученик чародея ©   (2006-10-18 01:20) [0]

Автор, указанной ниже статейки утверждает подобное.

Приемы защиты исходных текстов и двоичного кода
http://www.osp.ru/text/302/180304/

Вот и думаю, то ли он идиот, то ли я его не понимаю.


 
Schamane   (2006-10-18 01:28) [1]

ХМ! Имхо, не хочешь код показывать - не показывай. Шифровать-то зачем? Тем более путать?!


 
Толкователь ученика   (2006-10-18 01:35) [2]

От самого себя, конечно.


 
Александр Иванов ©   (2006-10-18 09:26) [3]

Посмотрел поверхностно. А что смущает? Да, существуют варианты защиты кода таким способом. Часто практикуется со скриптами. Сейчас используется и для .NET


 
[wl] ©   (2006-10-18 09:28) [4]

Крис Касперски идиотом никогда не был.
Приведу простой пример, когда требуется скрывать исходный код - это программы, написанные на языке Java или *.NET. С помощью декомпилятора можно восстановить весь исходный код без комментариев естественно, чтобы затруднить анализ, вовсю применяют обфускацию, в результате декомпиляции получим уже невнятную программу, с кучей методов и полей с именами a, b...
получим что-то типа

a = a(a(a.a,b.a), b.a(с.a, a.b, a.c), b);

причем в таком коде почти все a - это абсолютно разные методы и поля.
Легко будет разобраться в такой программе? По своему... хм... обширному опыту скажу - очень сложно.
Так понятнее о чем пишет автор?


 
ИА   (2006-10-18 09:47) [5]

Проблемы с применением дотфускации

1) Зачем это вообще нужно. Зачастую осмысленного ответа на этот вопрос получить не удается.

2) Тестироование программы с дотфускированным кодом затруднительно - информация об ошибках + стэк искажены до неузноваемости, при этом сама дотфускация уже оттестированого кода для заказчика может внести проблемы диагностировать которые весьма нелегко, так как тот же код у девелоперов работает + уже упомянутые искожения. Впрочем, "может" тут неправильное слово :(


 
[wl] ©   (2006-10-18 10:00) [6]

что значит зачем? распространять программу без обфускации равносильно распространению исходных текстов.


 
TUser ©   (2006-10-18 10:03) [7]

Автор забыл еще самомодифицируемый код. Еще goto - лучший друг закрывальщика кода.


 
ИА   (2006-10-18 10:09) [8]

>что значит зачем? распространять программу без обфускации равносильно распространению исходных текстов.

Неверно. Разница есть и существенная. Исходные тексты можно изменить и перекомпилировать. CLR код можно посмотреть, но усилия на полную декомпиляцию проекта и его пересобирание будут сравнимы с написанием с нуля. В большинстве случаев никакая отдельная форма / процедура не содержит в себе секретов которые надо скрывать - кусками код ценности в себе не несет. Исключения бывают, но их исчезающе мало...


 
Игорь Шевченко ©   (2006-10-18 10:14) [9]

Чтобы программу ломали путем поиска, анализа и перекомпиляции исходного кода, надо, чтобы она была кому-то очень нужна. Подобного рода защита конечно успокаивает мнительных программистов, но не более того.


 
Rouse_ ©   (2006-10-18 10:18) [10]

А зачем мучаться? Самый лучший обфускатор кода это студент третьего - четвертого курса ;)


 
@!!ex ©   (2006-10-18 10:22) [11]

Оптимальная защита не та, которую нельзя взломать, а та, взлом которой обходится дороже покупки.
Очень редкий софт взламывается для получения каких то сведений.
Взламывается в основном защита от нелегального копирования. Вот ее и надо защищать, а остальной код пусть остается в нормальном виде.


 
[wl] ©   (2006-10-18 10:39) [12]

> ИА   (18.10.06 10:09) [8]
странно, я в каком-то журнале видел обзор декомпиляторов, полностью восстанавливающих код из MSIL в C#... но лично с дотнет не приходилось сталкиваться, не знаю...

> Игорь Шевченко ©   (18.10.06 10:14) [9]

я так делал, когда мне хотелось запустить одну игру для сотовых на MIDP1.0-телефоне (это я про Java), так как она продавалась только для MIDP2.0 - а конкретно это DoomRPG, а точнее построенная на её движке игра Orcs and Elves.
Заняло это примерно 1 час (в основном пришлось вручную реализовывать отсутствующие методы в midp1.0 методы).
В коде разбираться не пришлось слава богу.

еще можно взять кусок полученного исходного кода, отвечающего за проверку серийного номера и создать кейген к примеру. Или достать скрытые ресурсы.

Так что вариантов много...


 
Карелин Артем ©   (2006-10-18 10:44) [13]


> ИА   (18.10.06 10:09) [8]

Так можно не по функциям смотреть, а сразу весь солюшен декомпиллировать.
Простые программы свободно декомпиллировались/компиллировались. А вот наш софт, пишущийся долго и не одним человеком не собрался обратно.
Отношу это к несовершенству декомпиллятора.


 
vuk ©   (2006-10-18 11:02) [14]

И как они умудряются вообще машинный код разбирать? Там же одни регистры да адреса в памяти... Совершенно невозможно понять, как оно работает! :)


 
Rouse_ ©   (2006-10-18 11:32) [15]


> vuk ©   (18.10.06 11:02) [14]

А оно и не работает :) Иначе зачем выпускать патчи которые правят глюки которые внесли предыдущие патчи, которые правили глюки, которые внесли предыдущие патчи, которые правили... ;)


 
Карелин Артем ©   (2006-10-18 11:57) [16]


> vuk ©   (18.10.06 11:02) [14]

Где машкод? В жаве? В ДотНете? ;)



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.042 c
2-1161292434
fog
2006-10-20 01:13
2006.11.05
Глюк !!!


15-1160483544
Nic
2006-10-10 16:32
2006.11.05
Олимпиада 1C


2-1161261418
СержК
2006-10-19 16:36
2006.11.05
Событие наведения указателя мышки к кнопке на форме


2-1161170827
pkm
2006-10-18 15:27
2006.11.05
Объясните смысл ошибки.


2-1161596663
Ося
2006-10-23 13:44
2006.11.05
Динамически созданные СheckBox