Методы зашиты VB программы от копирования.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.01.2006 (Вт) 6:34

FleX_2004 писал(а):2 pantalone если не знаешь кто говорит и на сколько это правда, то просто промолчи

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

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

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 03.01.2006 (Вт) 8:30

Народ! А как можно защитить программу от дизасемблирования? Возможно ли это вообще???
GPP(c) Gorlo Pavel Programming

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.01.2006 (Вт) 10:38

GPP
Меня тоже этот вопрос волнует, потому как бывали случаи уже, человек полгода корячился над прогой, наконец вложил ее и тут через месяцок ему присылают ссылку на его же прогу слегка обточенную и уже как получается бы не совсем его :)

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.01.2006 (Вт) 12:43

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

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 03.01.2006 (Вт) 14:02

FleX_2004 писал(а):2 Lumen спасибо за исчерпывающий комментарий.
2 bayasaa как на разных компах скомпиленный код может работать по разному??? у меня все отлично крякнулось. что там у тебя не знаю. может ты что то такое сверхъестественное сделал ... =) я просто поменял условный переход на безусловный при проверке типа If registered = true then form2.show
или
if X_right = X_calculated then form2.show
заменил на
if X_right <> X_calculated then form2.show
=) может быть у тебя именно из за того что ты зареген у себя и не хочет запускаться???? =) перестань быть зарегестрированным =)


Дело в том что я сделал 2 разных функций которие независимо работают друг от друга, в придачу я привинтил прогу к заводскому серийнийку жёсткого диска, все они работают не зависимо друг от друга.


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

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 03.01.2006 (Вт) 14:04

Pantalone писал(а):Да, накачал тут "декомпиляторов", имена функций, модулей, элементов, все как на ладони, одна прога даже видоизменять формы и редактировать элементы наловчилась. Совсем грустно. Нету ли обфускаторов для VB6 проектов, чтобы хотя бы названий разобрать нельзя было что где?


Какие компиляторы и откуда можно их скачать
если не трудно отправь мне на мыло bayasaa_7672@yahoo.com

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 03.01.2006 (Вт) 17:15

Попробую внести ясность. Напрямую от дизассебмлирования защититься нельзя (просто я не знаю, как, но если я не прав - не пинайте сильно :roll: ). Однако можно скрыть истинный код программы. Для этого люди придумали пакеры (ну типа UPX, Aspack). Но крякеры быстро научились их снимать. Тогда программеры создали проты (ASProtect, Armadillo, гребанный ExeCryptor, мать его за ногу... :x ). В них добавили разные антиотладочные трюки, шифровку кода, антидампинг, спёртые байты... Короче хитрости можно перечислять до бесконечности. Кстати многие проги под протекторами умеют определять наличие на компе крякерских тулзов и есссно им это не нравится, о чем они постоянно орут или вообще отказываются работать. Однако нет ничего невозможного, и в инете можно найти кучу туторов по снятию практически любого протектора. Одним словом, если захотят сломать - сломают, правда процесс взломки может сопровождаться большим или меньшим гемором.
Цитата с ХакЗоны:
ВСЁ ЧТО СОЗДАЛ ЧЕЛОВЕК МОЖНО ВЗЛОМАТЬ - ИДЕАЛЬНОЙ ЗАЩИТЫ НЕ СУЩЕСТВУЕТ

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 03.01.2006 (Вт) 17:22

Pantalone
По поводу обфускаторов. Тебе лучше зайти на
http://www.dotfix.net.
Админ этого сервака GPcH вытворяет на VB такие вещи, которые многим раньше казались невозможными. Там же можно найти, как можно защитить свою прогу на VB. Советую поглядеть, что такое VB Decompiler. В общем интересный сайт.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 05.01.2006 (Чт) 12:08

можно использовать это, но за деньги :-)
http://star-force.h1.ru/
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 05.01.2006 (Чт) 15:40

FleX_2004 писал(а):2bayasaa wasm.ru - там декомпиляторы
а то что у тебя там прога к чему то привязывается... так это все фигня... у тебя обычная проверка на валидность дает 0 или 1 ... это не зашита, поверь да и тем более что у BV крек спокойно пошел....


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

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

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 05.01.2006 (Чт) 21:08

Проверка ключа ИМХО не решение вообще, слабым местом будет не ключ, а поверка. А теперь ламерский вопрос.
FleX_2004
Сможешь отследить на старте программы строчку типа:
c=f(a,b)
Где f - моя функция, b - серийник к проге. Т.е. понять что защита ложится на эту самую c которая должна быть разной при каждом старте программы (завязать на что угодно, от времени пуска, времени старта винды, до количества файлов в корзине)

Суть идеи завязать работу проги на какую-то дополнительную "константу", неправильный рассчет на старте - он тебе работать не откажет. Точнее откажет, но только для приличных пользователей которые не снимут проверку. А для всех остальных согласится, но просто не сможет.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 06.01.2006 (Пт) 8:11

FleX_2004
Хроническая нехватка времени, даже на выходных. :lol: Программирование не самое важное/любимое для меня занятие. Так что примерчик будет тогда когда будет время. (а уж когда настанет это заоблачное далеко не ясно даже мне)

Алгоритм весов не катит говоришь... Тогда придеться подумать более сложную математику. Кстати как ты обрежешь "+к-к" просто на пальцах. А то не зная мне трудно придумать рабочий вариант как тебя от этого отучить )

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 06.01.2006 (Пт) 12:42

FleX_2004 писал(а):те данные НУЖНЫЕ ДЛЯ РАБОТЫ ПРОГРАММЫ ПРИСЫЛАЮТСЯ КАК КЛЮЧ. - это самый сложный тип зашиты для кракеров(смотря конечно как он реализован=) но даже слабо организованный тянет на твердую ТРИ.


как реализовать этот ключ, и что такое RSA ключ
FleX_2004 писал(а):нельзя. на каждый вирус найдется свой антивирус.
на каждый меч свой щит....


можно ведь узнать работает ли на даный момент та или иная программа
разве это не поможеть.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 06.01.2006 (Пт) 21:36

Защитой от копирования заниматься не собираюсь, но хотелось хотя бы обезопаситься от редактирования ресурсов программы и вообще изменения ее вида дабы выдать потом за свою. Как бы этому противостоять? Думаю попробовать как-то завязать работу программы на размер екзешника, чтобы при неверном его значении функции не могли правильно вызываться, т.е. имена вызываемых функций определять на основе размера собственного екзешника. Но мозгов пока не хватает как это реализовать. Может есть у кого простенький примерчик?

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 07.01.2006 (Сб) 0:31

FleX_2004
Это все понятно, но я не настолько крут чтобы обойтись без примерчика :)
Проверка СРС ничего не даст, вам ли не знать, нужно ведь будет его как-то сравнивать, следовательно при сравнении прога и будет поломана. Хочу сделать чтобы например запуск функций стал возможен только при правильной дешифровке их имен, где в качестве ключа используется размер файла, который при правке хотя бы картинок или иконок не изменить довольно проблематично. Т.е. изменился размер файла и прога отдает команды на запуск функциям с кривыми именами и прога не работает.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 07.01.2006 (Сб) 13:51

Pantalone писал(а):FleX_2004
Это все понятно, но я не настолько крут чтобы обойтись без примерчика :)
Проверка СРС ничего не даст, вам ли не знать, нужно ведь будет его как-то сравнивать, следовательно при сравнении прога и будет поломана. Хочу сделать чтобы например запуск функций стал возможен только при правильной дешифровке их имен, где в качестве ключа используется размер файла, который при правке хотя бы картинок или иконок не изменить довольно проблематично. Т.е. изменился размер файла и прога отдает команды на запуск функциям с кривыми именами и прога не работает.

А зачем проверять СРС, просто сразу дешифруй при помощи неё :)
Естественно, если она поменяется дешифровка произойдет неправильно и программа не будет работать :)
Если всё делать своими ручками, они скоро отвалятся !

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 07.01.2006 (Сб) 15:23

А если привязать программу к дате создания BIOS материнской платы?
GPP(c) Gorlo Pavel Programming

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.01.2006 (Сб) 15:47

GPP, ты топик читал или просто так ляпнул?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

bayasaa
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 93
Зарегистрирован: 13.08.2005 (Сб) 11:57
Откуда: Mongolia

Сообщение bayasaa » 08.01.2006 (Вс) 7:20

FleX_2004 писал(а):bayasaa накрутил в своей защите.... ойойой... просто жуть... всяких там номеров биосов итд итп не пересчитать как он этот ключик получает. кучу циклов написал... а итог... защита свелась к одной единственной строчке : if введенный_ключ = правильному_ключу then запускать нормально прогу
else
выдавать сообщение что я хочу денег
end if
это защита одного байта. никогда так не делайте, если конечно не хотите надурить взломщика и показать что ваша защита - защита от ребенка =)))))

FleX_2004 писал(а):когда-то ты говорил
я тебе любой практически IF переход сломаю... так что это бессполезно... надо делать другой контроль... над этим я как раз и работаю... точнее борюсь

Но как без IF перехода можно осуществить проверку


FleX_2004 писал(а):Уважаемые... по порядочку:
bayasaa RSA это система Публичный ключ- приватный ключ ( на первый шифруешь, на второй расшифровываешь, первым не можешь расшифровать)
ГДЕ? - ищи в интернете- полно статей на эту тему. почитай так же БРЮС ШНАЙЕР "прикладная Криптография" - там все отлично расписано. я ее от корки до корки изучил (там около 1000 страниц А4) по нескольку раз и не жалею.
КАК? да очень просто - ищи по форуму исходники clsRSA и clsCert ... я где то поднимал эту тему =)
Узнать работает та или иная прога тебе не удастся так как любое изменение в проге и ее перекомпиляция приводят к тому что ты не сможешь даже по контрольной сумме определить что это именно та прога.
еще будут вопросы по защите или по РСА - пиши суда =) думаю всем будет интересно =)


Будь добр пришли мне мне на мыло про этот РСА

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.01.2006 (Вс) 9:01

bayasaa писал(а):Но как без IF перехода можно осуществить проверку

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

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 08.01.2006 (Вс) 18:45

Kovu писал(а):
Pantalone писал(а):FleX_2004
Это все понятно, но я не настолько крут чтобы обойтись без примерчика :)
Проверка СРС ничего не даст, вам ли не знать, нужно ведь будет его как-то сравнивать, следовательно при сравнении прога и будет поломана. Хочу сделать чтобы например запуск функций стал возможен только при правильной дешифровке их имен, где в качестве ключа используется размер файла, который при правке хотя бы картинок или иконок не изменить довольно проблематично. Т.е. изменился размер файла и прога отдает команды на запуск функциям с кривыми именами и прога не работает.

А зачем проверять СРС, просто сразу дешифруй при помощи неё :)
Естественно, если она поменяется дешифровка произойдет неправильно и программа не будет работать :)

Если приведешь работающй примерчик, я размещу твой ник на десктопе на целый месяц! :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 09.01.2006 (Пн) 3:20

Можно ли защитить свою программу на VB


Это вопрос типа "Возможно ли создать машину времени"

Если подойти к проблеме теоретически, а не сразу-же начать придумывать алгоритм:

Любая защита программы перестаёт быть защитой, если взломщик знает код программы и соответственно код защиты. А код защиты можно лекго узнать ибо это асм-код, который даст вам любой дизасм. Т.е. проблема сводится к знанию задницы емблера :D

Если вы захотите зашифровать код своей программы, то взломщику нужно будет знать код шифровщика. А код шифровьщика точно также берётся из асм-кода программы.

Если вы захотите сжать код шифроки кода: то код шифровщика для шифровщика основного кода, тоже можно узнать из вашей программы.

И так сколько бы вы не надтраивали на основной код шифровок, все они бесполезны, так как код самой верхней защиты всегда будет кодом программы.

Так что пока не появится ХДД способный на своём уровне шифровать данные, ваша программа будет не защищённой.

Но даже если бы такой ХДД и был, ему нужно было бы давать pin-код на дешифровку, который передаётся программно т.е. его тоже можно перехватить.

Т.е. на мой взгляд самый надёжный способ - это создать 10 девайсов, которые будут работать как весь комп, читая данные с ХДД и высылая их сразу на видюху :D :D :o :P :lol:

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

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

В нашем случае:
КОМП это пространство в котором находятся сейфы
EXE-файл это самый внешний сейф
ШИФРОВЩИКИ - сейфы которые лежат один в другом.
ASM-КОД шифровщиков - чертежы замка и ключа на стенке сейфа.
ASM-КОД вашей "супер-защищённой" программы - то что лежит в самом внетреннем сейфк.

Для пущей, вашей, уверенности я привиду такой пример:
Представте, что все программы в мире написаны на VB и так и сохранены т.е. открываешь блокнотом и читаешь VB-код. Представте, что и сама ОС написана на VB. Всё вообще написано на VB и код любого исполняемого файла вам доступен через блокнот и вы его понимаете. И теперь подумайте, как легко будет вам сломать любую прогу.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Хакер и гости: 93

    TopList