Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
Ученик чародея ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.046 c
3-1157540614
Bless
2006-09-06 15:03
2006.11.05
Как в run-time добавить свои field-ы в dataset?


2-1160984972
gvozdkoff
2006-10-16 11:49
2006.11.05
Paradox на другом компе


6-1150542080
Dark_Star
2006-06-17 15:01
2006.11.05
Передача данных по сети


3-1157625300
tytus
2006-09-07 14:35
2006.11.05
Как получить привилегии поьзователя (допустим на SELECT).


2-1161249445
pkm
2006-10-19 13:17
2006.11.05
Подскажите пожалуйста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский