Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Защита программы от взлома! Давайте обсудим! Добавлено: 06.03.07 22:55  

Автор вопроса:  Lanback | ICQ: 271-209-305 
 Всем привет!
 Столкнулся с необходимостью защитить свою программу от несанкционированного использования!
 Ход мыслей таков - сгенерировать Installation ID на компе где будет ставиться прога, на основе него выбрать в проге зашитый захэшированный пароль(пароль1). Хэш пароля, вводимого юзером должен совпасть с пароль1.
 Подскажите 2 вещи - как можно сгенерировать Installation ID(чтоб для разных компов он был разным, но для одного компа чтоб каждый раз генерировался один и тот же). Я слышал что можно на основе серийных номеров проца, винта или ещё какого-то железа...Если да - то как их программно узнать?!
 Ну и есть ли в VB ф-ции, или может какие-то библиотеки, которые хэшируют строки, например как ф-ция crypt в php?

Ответить

  Ответы Всего ответов: 22  

Номер ответа: 1
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #1
Добавлено: 06.03.07 23:27
Хэш пароля, вводимого юзером должен совпасть с пароль1.


Ставим брак на кнопку и прыгаем в функцию которую вызывает нажатие.

А там будет что- то вроде.


cmp xxx,yyy // сранение
jne ttt // если равно


Останется только открыть нех - редактор и заменить условие на противоположное.

Если нужно, пропатчить можно и автоматизированно.

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

Ответить

Номер ответа: 2
Автор ответа:
 ANDREY Z5Z



Вопросов: 38
Ответов: 125
 Web-сайт: save-games.info
 Профиль | | #2
Добавлено: 07.03.07 00:30
На основе железа говоришь? А знаешь насколько легко к твоей программе придумать генератор ключа по этому же железу?

Ответить

Номер ответа: 3
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #3
Добавлено: 07.03.07 03:40
У тебя есть проблемы, в самой идее.

Ход мыслей таков - сгенерировать Installation ID на компе где будет ставиться прога, на основе него выбрать в проге зашитый захэшированный пароль(пароль1).
Подскажите 2 вещи - как можно сгенерировать Installation ID(чтоб для разных компов он был разным, но для одного компа чтоб каждый раз генерировался один и тот же).


Сгенерировать пароль, не проблема. Допустим на основании серийника винта. Ок. Сгенерировали, выбрали зашитый в проге пароль.
Ну а дальше? Какой пароль ты отошлешь юзеру? Чтобы узнать, что там выбрала твоя прога, тебе необходимо получать от нее информацию. А если юзер против, чтобы лазили по его компу, или у него нет интернета? Или антивирусы заблокируют отправку данных? И какой пароль ты ему пришлешь?

Тогда, как вариант тебе нужно делать, какой- нибудь активизирующий ключ(скорее всего это и будет сгенерированным прогой ключ), получив который (допустим по почте, или тебе по телефону позвонят:)), ты сможешь выслать(продиктовать) правильный пароль.

И вот здесь ,можно, как вариант, нписать генератор пароля. (если конечно охота париться, или это оплачено).

Почему? Да потому что пароль должен быть простой. Невозможно продиктовать по телефону пароль, к примеру, из 50 символов, который включает разную "абракадбру" и учитывает регистр.
И следовательно, как вариант, его даже иногда можно "вскрыть" простым перебором.

Ответить

Номер ответа: 4
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #4 Добавлено: 07.03.07 09:38
Vito телепат.... Я тоже так и делал. :)
Дома кейген, по телефону диктую: мне - пароль, я - отзыв. :)))

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 07.03.07 09:43
Пароль от проги проще всего терморелаксацией вытягивать... работает безпроигрышно

Ответить

Номер ответа: 6
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #6 Добавлено: 07.03.07 09:47
2 HACKER: терморектальным анализом ты имеешь ввиду? :)

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 07.03.07 10:24
да-да считайте очепятка, да и слово редкое, забыл я его :) Ну суть самого метода очень эффективная

Ответить

Номер ответа: 8
Автор ответа:
 »VladikComper«



ICQ: 419668582 

Вопросов: 23
Ответов: 147
 Web-сайт: vladikcomper.narod.ru
 Профиль | | #8
Добавлено: 07.03.07 11:37
Зачем программу от взлома защищать.
У меня есть программа для взлома...
Она приложения скомпилированные на VB взломать не может...

Ответить

Номер ответа: 9
Автор ответа:
 MIRC



ICQ: 254226129 

Вопросов: 6
Ответов: 6
 Профиль | | #9 Добавлено: 07.03.07 11:54
Можно просто вычислить дату создания БИОСа и творить с ним что хочешь, умножаешь, делишь. Я так одну из своиз прог защитил, на другой комп фиг закинешь :) Может и по-простому, но попробуй вычислить пароль...

Ответить

Номер ответа: 10
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #10
Добавлено: 07.03.07 16:10
Любую прогу можна зламать і з етим не чево не поделаеш а если хотите штоб не зламивали тогда не мтавте пароль от мой совет
или продавать прогу в руки но деньги вперед.
     ;Doc

Ответить

Номер ответа: 11
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #11 Добавлено: 07.03.07 19:35
Все это ерунда, программным методом не решить вопроса имеющего в основе "человеческий фактор",
Прикольнее всего проги а-ля "1с".
Основой Random-генератора в них по сути служит наше ..баное законодательство.

Ответить

Номер ответа: 12
Автор ответа:
 Lanback



ICQ: 271-209-305 

Вопросов: 23
Ответов: 48
 Профиль | | #12 Добавлено: 07.03.07 22:54
 Немножко уточню:
Я беру, например, серийник винта(это й будет Install-ID). Потом на его основе путём каких-то махинаций(умножение, деление,... - чтоб разобраться взломщику было тяжелее) выбираю в своей проге скажем один захешированный пароль из ста заданных жёстко (его в принципе можно и в БД хранить). Потом человек мне звонит, называет свой Install-ID, я говорю ему пароль, он его вводит в проге и если хэш введённого пароля совпадёт с захешированным паролем, который ему был определён на основе его Install-ID, то с проги снимутся ограничения демо-версии! Вроде всё классно, но меня беспокоит тот факт, что после всех этих тяжёлых махинаций с хэшами и т.д. прога всё-равно должна будет тупо сравнить введённый пароль и зашитый пароль(if-else), что как ты уже и сказал элементарно изменяется с помощью редактора кода.
 Но что же в таком случае делать???
 Спасибо за интерес к теме!

Ответить

Номер ответа: 13
Автор ответа:
 Lanback



ICQ: 271-209-305 

Вопросов: 23
Ответов: 48
 Профиль | | #13 Добавлено: 07.03.07 22:59
to EUGY:
<div style='border:1px solid #AAAA33; background:#FFFFCC; margin-left:20pt; padding:1pt 5pt 1.5pt 5pt; font-family:verdana; font-size:11px'>Основой Random-генератора в них по сути служит наше ..баное законодательство.
<br>

Что ты имеешь ввиду?!

Ответить

Номер ответа: 14
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #14
Добавлено: 08.03.07 00:13
Lanback
Но что же в таком случае делать???


Здесь ты не учел один простой момент - антиотладку.

Эащиту от отладки можно попытаться создать самому. Но это долгая история. Хотя собственные неожиданные и нетривиальные решения, могут сильно усложнить процесс взлома.
Используй готовую "навесную" защиту. Подробнее об этом можешь почитать (и скачать нужные программы) на wasm.ru.
Обычно все навесные защиты проверяют наличие активного отладчика, и в случае наличия оного, завершают процесс.
Впрочем это тоже легко обходится, но если интерес к твоей проге не велик, возможно будет лень ее ломать. Потому как, в этом случае, начинающему взломщику будет тяжеловато.

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

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

Ответить

Номер ответа: 15
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #15
Добавлено: 08.03.07 00:43
Ах да еще не все. Тут еще проблемка.

Я беру, например, серийник винта(это й будет Install-ID). Потом на его основе путём каких-то махинаций(умножение, деление,... - чтоб разобраться взломщику было тяжелее) выбираю в своей проге скажем один захешированный пароль из ста заданных жёстко (его в принципе можно и в БД хранить).


В этом случае ты должен будешь генерить случайные числа в промежутке 1..100 (если у тебя сто паролей) и точно нарвешся на повторение. То есть на разных компах у тебя будет одинаковый пароль. Понятно что я имею в виду?
Поэтому подобный способ неприемлем.
Ты можешь зашить и миллион паролей, но вероятность нарваться на повторение, все равно будет слишком высока. Потому как псевдогенераторы не отличаются равномерным распределением случайных величин.

Все же тебе прийдется генерить Install-ID, и на его основе (это чтобы самому потом можно было нужный пароль получить) тоже псевдослучайно генерить пароль.
То есть пароль будет некоей функцией Install-ID. Это с одной стороны обеспечит тебе уникальность пароля(возможность повторения будет несравнимо меньше), но с другой, делает простым написание кейгена.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам