Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

 

  Вопрос: Прога пишет в себя. Добавлено: 03.08.04 03:49  

Автор вопроса:  CyRax  | Web-сайт: basicproduction.nm.ru | ICQ: 204447456 

Ответить

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

Номер ответа: 46
Автор ответа:
 CyRax



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #46
Добавлено: 09.08.04 17:58
 Потайной это что? Невидимый что ли?
 Это для тебя он потайной, а в экзешнике он такой же как и все.

Ответить

Номер ответа: 47
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #47
Добавлено: 09.08.04 20:36
to Cyrax: смотря что ты решил патчить. Если exe'шник, то сам в себя - это проблема, а если память, так это можно в программе без встраивания в неё другой реализовать. И ещё - если можно обойтись без сравнения надо обязательно обойтись без сравнения. Тут мы можем зашифровать сам код программы, поэтому пароль сравнивать незачем, или ты что-то другое имел ввиду???

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

Ответить

Номер ответа: 48
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #48
Добавлено: 09.08.04 20:37
Всё, что связано с ресурсами - фигня. Я Download Master отучил показывать банеры. Достаточно было распаковать его и в ресурсах сделать высоту банера "0" и подтянуть наверх остальные контролы :) А писать в невидимый - апи одни и те же достают текст из контролов.

Ответить

Номер ответа: 49
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #49
Добавлено: 09.08.04 21:47
У кого-нибудь есть пример на ВБ WriteProcessMemory, а то как-то кривовато в вб у меня получается, а точнее не получается вообще, он даже адрес не тот подсовывает, чувствую проще на асме это накатать :( C этим придётся долше возиться :((

Ответить

Номер ответа: 50
Автор ответа:
 CyRax



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #50
Добавлено: 09.08.04 23:58
 Ну и в чём прикол что в памяти патчишь? Все равно данные нужно откуда то подгружать. Чем меньше файл, тем быстрее кракер в нём разберётся. А реестр отследить не проблема.

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

Ответить

Номер ответа: 51
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #51
Добавлено: 10.08.04 00:48
"Ну и в чём прикол что в памяти патчишь?" - мы не изменяем экзешник нашей программы, то есть если пароль пропадёт прога перестанет быть регеной без любых других манипуляций, т.к. код проги правится только в памяти и получить его можно только сдампив её из памяти. В итоге нельзя будет распространять патченный файл.

"Все равно данные нужно откуда то подгружать" - ты явно не понимаешь сути криптографии :( Там нельзя подсмотреть номер в памяти, т.к. он ни с чем не сравнивается, он служит для расшифровки. Если мы введём неправильный пароль будет неправильно расшифрован код и программа работать не будет(тот же принцип у архиваторов и у прочих программ-шифровщиков) А то, что кракер увидит ЗАШИФРОВАННЫЙ код программы, который ДЕШИФРУЕТСЯ ЧЕРЕЗ ПАРОЛЬ, КОТОРЫЙ МЫ ВВОДИМ, ну и нах.. он ему без пароля, разве что для прямого перебора (в лучшем случае несколько месяцев), без ключа это не более чем бессмысленный набор символов :))

" Чем меньше файл, тем быстрее кракер в нём разберётся" - да пусть хоть наизусть выучит, пусть он ему в кошмарах снится :), мало того, он наверняка найдёт, каким алгоритмом зашифрованно, благо у них открытый код, да и программы специальные есть, но опять же ему это без пароля АБСОЛЮТНО по барабану.

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


"А как вообще этот геристрационный номер работает?" - это ключ для дешифровки тыренной части кода программы, которая потом будет вставлена на место. Это ключ для КРИПТОАЛГОРИТМА, которым зашифрован тыренный код. Почитай побольше про криптографию, поймёшь, насколько этот способ обломный для взлома ;)
" Он один для всех пользователей?" - ключ - да, а вот рег. номер может быть любым, главное, чтоб в номере был ключ, а дальше на что фантазии хватит. Например первые 8 символов - это наш ключ, к нему можешь добавить ещё 30-40 символов - обычный пароль, который идентифицирует пользователя (как во всех программах) Тогда получится, что номера будут разные для БОЛЬШОГО кол-ва пользователей. Ещё прикольней будет, если стырить строки кода, которые за генерацию обычного пароля отвечают, тогда пока не появится настоящий ключ он не сможет разобрать и алгоритм генерации для юзера :)

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

"Тоже самое и с пользователем получается. Один купил на своё имя, а потом весь инет по его лицензии будет работать. Как же реально сделать лицензию на одного пользователя? Или расчитывается на честность(или жадность) покупателя?" - тут НИКАКАЯ защита не поможет, но такое происходит не часто, так что всё ок, особенно если часто апдейтитьтся/ Можно к биосу привязаться, к диску, но это всё фигня, хотя поможет, но не долго :((

Ответить

Номер ответа: 52
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #52
Добавлено: 10.08.04 07:26
> тут НИКАКАЯ защита не поможет
Однако все равно можно заюзать пару приколов. Например такой:
Инсталлятор генерирует серийник программы и серийником (функцией от серийника) меняет саму программу. В результате все юзера получают разные программы, которые требуют разные ключи. Тогда для регистрации потребуется распространять не только ключ, но еще и патч, который меняет инсталлятор, заставляя его, во-первых, возвращать всегда один серийник при его генерации, во-вторых, убивая защиту целостности. А если привязать некоторую часть кода программы к коду инсталлятора, сделать это будет еще труднее, вплоть до того, что придется распространять патч, по размерам сравнимый с самой программой.

Ответить

Номер ответа: 53
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #53 Добавлено: 10.08.04 08:20
Возможно я что-то упустил в этой беседе, но почему бы не сделать патчер в виде небольшого экзешника и не запихнуть его в ресурсы. При надобности основная программа распаковывает его в TEMP директорию, запускает и сама выгружается. Патчер крякает exe основной программы, запускает ее с параметром командной строки, свидетельствующей о необходимости удаления патчера, и сам выгружается.
Так что я упустил?

Ответить

Номер ответа: 54
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #54
Добавлено: 10.08.04 12:03
Я пишу, как я всё понимаю сам, на точность и подробность это описание претендовать не может.
Суть криптоалгоритмов в том, что пропуская через информацию они её портять через ключ, который задаёт человек, в итоге получается бессмысленный набор символов, который что-то значит лишь при наличии ключа (например есть строка "ABC" и ключ 123. Будем например сдвигать направо по алфавиту на длину ключа... A+1->B, B+2->;D, C+3->F. "BDF", далее, вы решили взломать программу и видите номер BDF, вы точно знаете что это зашифрованный пароль, знаете алгоритм, знаете, что такие ранние буквы могут получиться если пароль состоит из ранних букв, а ключ из небольшого числа, но также если число большое и буквы уходят дальше, чем "Z", то всё начинается сначала, так что ключ и пароль могут быть ЛЮБЫМИ числами и буквами. Единственный способ восстановить пароль это перебирать все варианты ключа. Надеюсь Вам понятно, что я хотел сказать...

Интересная информация:
В сотовых сетях GSM для защиты от прослушивания используется криптоалгоритм RSA. Там как-то запористо SIM'ка и передатчик договариваются о ключе, и в итоге СПЕЦСЛУЖБЫ вынуждены просить сотовых операторов снимать шифровку для прослушивания переоговор террористов, т.к. сами они искать ключ прямым перебором будут долго...

Теперь посчитаем, сколько можно искать ключ прямым перебором:
Кол-во вариатнов комбинаций символов выражается формулой - кол-во_различных_символов^длина_числа
Т.о. если мы используем только заглавные буквы латинского алфавита (26) и ключ длиной 8 символов получается : 26^8 = 208827064576 вариантов строк. Берём скорость прямого перебора порядка 30 вариантов в секунду(скорость примерная, исходя из скорости перебора паролей для архивов RAR. У меня была около 12. Сам брутфорсер добавляется в программу, перед сообщением о неправильности пароля ставится прыг набрутфорсер, он перебирает пароли, вставляет по адресу, где оказывается пароль после нажатия кнопки ок и в итоге прога ничего не подозревает, а скорость достаточно высока, т.к. не происходит ненужных вызовов). Значит в день их: 30*3600*24 = 2592000. Теперь поделим кол-во вариантов на кол-во в день... 80566 дней - по моему неплохо ;) А теперь используем цифры, маленькие буквы, точки, звёздочки и прочие символы, КРОМЕ РУССКОГО АЛФАВИТА. Получается примерно 80 символов... Итого 1677721600000000 вариантов!!!!! Делим на скорость и получаем, что чтобы перебрать все варианты понадобится 6472691358 дней!!!!!!!! или 17979698 лет!!!!!!!!!!!! Ну как, я убидел Вас, что криптография для защиты по - это сила?! А если длину ключа увеличить, то... считайте сами :) По этой причине спецслужбам проще попросить выключить эту хрень, чем потом колупаться много лет...

Ответить

Номер ответа: 55
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #55
Добавлено: 10.08.04 12:06
to LamerOnLine: тут минус, что прога потом пропатчена и без всяких паролей... Надо научиться использовать WriteProcessMemory, тогда прикольней будет

Ответить

Номер ответа: 56
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #56
Добавлено: 10.08.04 12:37
2Ra$cal: ты не учитываешь еще одну вещь: RAR, расшифровывая, может сказать, что пароль неверен, потому что после расшифровки он проверяет CRC, а вот спецслужбы не могут проверить CRC у общения, потому что его у него нет. А еще есть такая вещь, как ложное срабатывание. Например, если ключей очень много, может попасться несколько неправильных, которые, однако, дают правильный CRC после расшифровки.
Тем не менее, для подавляющего большинства существующих криптоалгоритмов есть возможность дифференциальной криптоатаки, основанной на том, что энтропия криптотекста обычно невелика.

Ответить

Номер ответа: 57
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #57
Добавлено: 10.08.04 12:45
WriteProcessMemory, использовать то и учится не надо, все интуитивно понятно :))

Ответить

Номер ответа: 58
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #58
Добавлено: 10.08.04 12:46
Sharp, значит нужно сжать данные и их закриптовать %)))

Ответить

Номер ответа: 59
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #59 Добавлено: 10.08.04 12:48
ГЫ , это всё рулесЪ, но отловить можно и запись в память из данного процесса, т.е ловится стартовый адрес и конечный, нагло дампится всё в файл, пищется пач который добовляют прямо в твой ехе на место старого кода, делают джумп на него и щитай что прогу обломили. НО от этого можно защится откомпилировав ехе в нутри него должна находится контрольная сумма(где-то нагло спрятанная ) которую програмка проверяет , если вдруг чё то сразу трёт внутри себя нужный исполняемый модуль, что бы крякеры повозились искать эту проверку, которой уже нет, а для пущей уверенности можно оставить регистрацию в рабочем состоянии но не сравнивать ни чего.

ИМХО А если прога распространяется по сети, то лучще сделать он лайн регестрацию.

Ответить

Номер ответа: 60
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #60
Добавлено: 10.08.04 13:35
хе, а вот просерку контрольной суммы найти и отключить, вовсе труда не представляет :)

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 |

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



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