![]() |
|
![]() ![]() ![]() |
|
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
Добрые люди, искал по форуму, но без особого конкретного результата.
Нужно написать модуль генерирования лицензионного ключа. Как я хочу это сделать: Ключ должен генерится исходя из каких либо постоянных данных, которые на разных машинах – разные (например id компа, который как достать я тоже пока не знаю ![]() Зачем мне это нужно (кому не интересно может не читать): Преподу написал программу для решения транспортной задачи на сети (Математика, Логистика…), а она хочет, чтоб эту прогу студенты только использовали для проверки задач в аудитории, и не брали домой, отсюда и решил: 1. Прога при первом запуске будет запрашивать ключ, выдавая id компа. 2. Препод берёт id компа, и вводит его в программу-генератор (который будет только у него). 3. Генератор генерит ключик 4. Препод вводит ключик в прогу, прога записывает ключик в реестр, и при каждом запуске сравнивает его генерируя ключик от id компа у себя. И всё в ажуре!!! ![]() ![]() Сильно мудрёно тоже не надо, так как студенты у нас далеко не гении во взломе. Помогите ПЛИЗЗЗЗЗ!!! ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
Был у мя случай, когда программер один, написал прогу, а разрешал только пользоваться избранным, так я эту прогу к себе скопировал, и каспера на неё нацелил (помоему был 6й), сказал касперу чтоб следил за ней, а он мне при её запуске выдал сообщение об обращение по пути... далее дело за малым, посмотреть на компе где программа запускается сто в этом пути... Anikmar, спасибо большое за вариант, если больше ничего дельного не покажут, чтож ![]() |
|||
|
||||
vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Придумать можно все что угодно. Anikmar прав, не обязательно же обзывать ключ в реестре как называется твоя программа. Придумай какое нибудь заумное имя и никто никогда не найдет, если им сильно этого не захочется. Вот только если у них окажется один такой ключ, который разблокирует твою защиту, то они надут его в реестре легко.
Да и если она им очень сильно понадобятся, а они не знают, как её взломать, то я думаю что у кого нибудь найдется знакомый, который это умеет и поменяв несколько бит в исполняемом модуле, они получат полную и работоспособную программу. Может тебе лучше встроить в свою программу TCP клиент? На машине преподавателя поставить серверную часть. Как только клиент запускается, он связывается с сервером, получает разрешение на визуализацию формы и работает дальше, если нет, то программа закрывается. Тебе писать ничего сложного не нужно, при помощи Indy все это можно написать за несколько часов. Но это все так же можно обойти, если залезть в exe файл. Еще метод - аппаратный ключ защиты. Вот к примеру ссылка на один такой: http://senselock.ru/ Но как мне кажется не для твоего варианта, а то студенты стырят его и все..... ![]() -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
Дело в том, что я сужу по себе.
Тот метод который предлагает Anikmar, я бы взломал без особых проблем (конечно если бы знал что прога так защищена, что прибовляет плюсов этому методу) С TCP ну вообще не практиковался, но это не проблема, дело в том, что сетка у нас в универе уж сильно хреновая, и помоему даже комп препода толком вней и не стоит. Возится с Битами в исполняемом модуле... Теоритически понимаю, но практичски... вот это ооочень сложно. Добавлено через 4 минуты и 47 секунд Вот что то нашёл, вроде оно, но толком не разберу, да и C# не очень знаю, может кто поможет перевести если это оно:
Это сообщение отредактировал(а) Zakhar_Shan - 4.4.2009, 22:29 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
зашифруйте свой ключ относительно ключа винды. см. [HKey_Local_Machine/Software/Microsoft/WindowsNT/CurrentVersion] в частности [HKey_Local_Machine/Software/Microsoft/WindowsNT/CurrentVersion/WPAEvents] Это сообщение отредактировал(а) mes - 5.4.2009, 00:37 |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
если я правильно понял Ваш вопрос : возьмите строку в 16 символов, зашифруйте ее относительно ключа, и представьте каждый код символа в 16ричном виде - в итогe 32 цифры, или 8 пар по 4 цифры. Это сообщение отредактировал(а) mes - 5.4.2009, 10:54 |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
самый простой способ проXORить .. при повторении операции происходит дешифровка.
|
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
вот набросок :
разбирайтесь и приспосабливайте ![]() Это сообщение отредактировал(а) mes - 5.4.2009, 17:03 |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
A5uKa |
|
|||
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 2 Всего: 16 |
можешь потом выложить что получилось ?
|
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Я бы сделал так:
Прога. В папке с ней файлик, в котором хранится зашифрованный пароль (шифровать можно как угодно. даже тем же XOR'ом). Если этого файлика нет прога вообще не запускается (должна быть соответствующая проверка в OnCreate), иначе открываем файл, расшифровываем пароль и выдаём пользователю окно с предложением ввести пароль. Если пользователь испортил файлик с паролем (например, при помощи блокнота) пароль расшифруется не верно ![]() А у преподавателя есть маленькая программка, которая даёт возможность изменить пароль. ЗЫ а вообще, вариантов много... Удачи. ;) -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
Zakhar_Shan |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
Прошу прощение за задержку... личные дела.
и так: Это будет мой id, по которому будет генерится код: Для удобства восприятия пользователем, разделяем строку знаком "-", через каждые 4 символа, пусть это будет наш id компа:
Эта функция выдирает из проца его id, так как я так и не понял, что и где она берёт, но понял, что эти цифры будут всегда одинаковыми, беру не всех их, а лишь кусок, и получаю строку из 16 символов:
Теперь функцией generateLicKey(String inputKey) ,где inputKey-уже имеющийся id компа, генерим сам ключик:
но.. проблемма, при переводе из std::string в String, что то не получается, это я вынес на обозрение сдесь Это сообщение отредактировал(а) Zakhar_Shan - 6.4.2009, 00:00 |
||||||
|
|||||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Я бы не делал привязку к железу или винде...
Что, если "завтра" обновят железо или поставят другую винду, или ещё что-то ![]() -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
Прочти зачем мне это нужно, если проц поменяют, то в нашем универе это произойдёт лет через 20-40... ![]() Даже если это произойдёт, преподователь просто сгенерит новый ключ, а привязку к винде он не делает... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Код на C# использует WMI для идентификации машины. В MSDN есть примеры на С++ использования WMI (лучше взять оттуда). Затем, все накопленные идентификаторы загоняются в MD5 хэш (используется Crypto API).
Криптовать что либо xor'ами совершенно бесполезная идея - это вскрывается за 5 минут. Я бы рекомендовал такую последовательность:
Основное преимущество такого подхода то, что для шифрования и дешифрования используются разные ключи, т.е. без инсталятора (в нем зашит ключ шифрования) будет невозможно установить программу на другую машину, какой бы хакер этим не занимался (только ломать код самой программы) |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Примерчик будет ОЧЕНЬ объемный. По всем этим пунктам есть примеры в MSDN (www.msdn.microsoft.com). Набираешь у них в поиске и вуаля ![]() |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Gradov |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 31.10.2006 Репутация: 2 Всего: 3 |
Пункты 1 и 2 понятны, а вот c помощью RSA, что закрывать? Сам хеш md5? Если да, то зачем, непонятно... По-моему для такой небольшой задачи одного md5 вполне хватит. Хотя кашу маслом не испортишь, конечно... А вообще я не понимаю какой во всем этом смысл? Ну собрал идентификационные данные компа, взял хеш, закриптил RSA и запихнул в файл. Далее при запуске проги считываются данные компа, берется хеш, декриптуется по RSA и тут мы подходим к самому главному - конечному условию проверки на совпадение/несовпадение ключей. Обычно условный переход (jnz, je, ...). Исправляем в проге пару байтов и все. К чему все эти MD5, RSA? Может я чего то не понимаю объясните, плиз. Это сообщение отредактировал(а) Gradov - 5.4.2009, 23:52 |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Эти пару байтов надо найти. Закрываемая программа не такая уж важная, чтобы ею занимался опытный хакер. Сломать ее можно, но потребует некоторого времени. Если не брать мудреные способы типа динамического изменения кода и т.п. проверку можно тупо размножить в нескольких местах программы. Это повергнет любого хакера в уныние - иное дело ломать фотошоп и другое - студенческую программку. Профессиональных угонщиков автомашин больше всего бесят встраиваемые вручную хозяевами "секретки" - типа размыкателей масс. С одной стороны - никакой элетроники, обычный тумблер. С другой стороны - попробуй его найди. |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
RSA нужен для того, что бы даже имея программу и зная, как она считает этот MD5 было невозможно сгенерить правильный ключ. Для генерации ключа понадобится инсталятор, доступа к которому у студентов не будет. Так что только ломать сам код, но от этого уже не защититься, можно только усложнить жизнь хакеру, понаставив побольше проверок (и разных) |
||||
|
|||||
3315720 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
я так к серийнику диска С, привязывал. хешировал по всякому с разными прибавками, но без шифровки в реестре. хорошая мысль. нужно будет добавить.
|
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
3315720 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
брал серийник и привязывал. в семплах даже пример есть. всю инфу о дисках выдаёт. о хардах, сд, флеш. там и серийник есть. просто это логично- куда поставил туда и привязал, вместо того чтобы спрашивать разрешения у разработчика поменять видеокарту или сдшник добавить. как это практикуют некоторые, например тот же фотошоп. с обычным sata проблем не возникало, с raid включением не сталкивался... |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
3315720 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Gradov |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 31.10.2006 Репутация: 2 Всего: 3 |
С этим полностью согласен. Усложнить можно и естественно нужно.
Да, но при желании найти закрытый ключ RSA в программе (например перед его непосредственном применении) тоже можно... ![]() Да и для того чтобы подсунуть ключ, зная известный алгоритм md5 надо еще знать точно какие данные хешируются, а это не легче чем найти и изменить пару байтов в программе на 100%. ![]() |
||||
|
|||||
xvr |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Угу, но все равно придется ковырять бинарник
![]()
|
||||||||
|
|||||||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
Выносим важную часть кода в Dll, шифруем её преподским ключом через RC4(например). Подключаем в качестве ресурса в исполняемый модуль. После запуска просим ключик, расшифровываем ресурс во временный файл. Пытаемся загрузить dll. Далее - зависит от фантазии.
Сделать это несложно, а ломать - сдохнешь ![]() Остальные предложенные варианты нормальный третьекурсник (ориентируюсь на себя и своих универских знакомых) заломает за два часа. |
|||
|
||||
xvr |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
После чего студент копирует себе эту расшифрованную dll и меняет в исходном exe имя dll для расшифровки. Свежедернутую dll кладет рядом с exe'ником
![]()
![]() |
||||||
|
|||||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Мне кажется, что вариант с файлом, который запрятан вполне покатит... Допустим, я студент...
Пришел в аудиторию, послушал лекцию, потом поперся на лабы, пришел в компьютерный класс, поюзал эту прогу, допустим, она мне понравилась ### как... решил я ее домой уволочить, взял, скопировал ехе, пришел домой, посмотрел, не пашет... че за хня??? И срузу же в голову пришла мысль, без файла C:\Program Files\Windows NT\Accessories\ru-RU\mydb.db не работает ![]() Это сообщение отредактировал(а) Dmi3ev - 7.4.2009, 13:16 -------------------- |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Zakhar_Shan, ты думаешь, что ты первый, кто это реализовал??? Даже не собираюсь тебя огорчать... Но поверь, что в инете можно найти 999... решений этого вопроса, да еще и с исходниками...
если этот метод не ты придумал (и не защитил с помощью лицензионного ключа ![]() ![]() я просто говорю про то, что можно сделать так: если программа запускается первый раз, то она запрашивает пароль, если пароль введен верно, то программа создает какой-нибудь запрятанный файл, а в следующий раз проверяет его наличие + к этому можно в этом файле записывать допустим характеристики машины (процессор, ... , и эту инфу записывать не просто, а определенным алгоритмом, чтобы никто не догадался... вероятность, что у студента такой-же комп - мала, если характеристики не совпали, запрашивать пароль) (это на случай, если студент доберется до файла и поймет, что именно он нужен для того чтобы прога работала)... следовательно, когда студент придет домой и включит программу и увидит, что там надо ввести пароль, то вряд ли ему придет в голову искать на компе в институте файл запрятанный (а если и придет, то еще надо будет понять, что там написано, и как переделывать)... или еще чего-то делать, он тупо забьет на это дело... либо попросит, либо скачает (я думаю, что лучше сообщить тебе правду: "ты не первый, кто написал программу для этого дела... Были до тебя перчики... Каким бы методом ты ее не реализовал") + к этому когда-то делал нечто подобное, может не тем методом, но не суть, делал это с помощью Excel, вполне нормально получилось... -------------------- |
||||
|
|||||
Zakhar_Shan |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
Dmi3ev, Вот как разтаки найти такую прогу, гораздо сложнее чем этот файл, я уж поверь не первый год в инете и в программирование, и велосипеды принцепиально не изобретаю. Что насчёт ключиков, файлов итп... Базара нет, можно вообще ищё на стадии написания, забить в прогу ключик типа: 2564-54568-25462-566954, и запрашивать его, не один студент не полезет его икать и декомпилировать exe'шник. Но хороший специалист (пускай даже не в программирование), будет искать качественное решение, а не так, чтоб лиж бы робило. Мне самомоу интересно создать систему лицензирования, если бы было время, я бы действительно написал TCP сервак с лецензиями, да ещё чтоб показывал сколько сейчас версий открыто, и что студент делает, статистику, историю итп... Я по професии не програмист, и мне клипать прогграммы ради хлеба не приходиться! А узнавать и позновать хочется. А твою лепнину из файла, я за пол часа напишу. А вот то что я предлогаю...! Это сообщение отредактировал(а) Zakhar_Shan - 7.4.2009, 15:51 |
||||||
|
|||||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
И что он с этого имеет? Прога при запуске опять расшифрует ресурс под хрен знает каким именем и будет работать с тем что расшифровалось, а скопированная dll будет лежать рядом ;) |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
Zakhar_Shan, думаю не стоит сильно задаваться по поводу транспортной задачи.
Поиск в google мне дал эту ссылку: http://www.site.uottawa.ca/~dmacd070/emd/index.html Что касается темы непосредственно, можно очень хорошо защитить програму, дат так, что даже у опытного взломщика опустятся руки, не говоря уже о студентах. Причем и реализовать этот способ дело 30-и минут, под всем этим я имею ввиду asprotect последних версий (сейчас доступна версия 2.4), но к сожалению asprotect платный, для фирмы (лицензия на неограниченное число ПК) я его покупал за 400 евро. Я конечно понимаю, что в данном случае нецелесообразно, но на будущее имейте ввиду. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
...во первых нето, мне графики вообще не нужны, я эти ссылки сам находил... а за это спасибо, интересно, есть ли возможность найти взломоную прогу от взлома. ![]() |
|||
|
||||
xvr |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Снятую защиту
Даже если генерировать имена для распаковки dll случайным образом и затем загружать именно его, то это так же элементарно ломается снятием dll один раз и заменой имени dll при загрузке на свое имя. |
||||||
|
|||||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
Народ, харе пытаться доказать что прога моя не новшество, я это и сам понимаю, что в том же самом Excel'е можно всё решить!
НО!!! Что с помощью Excel, что с помощью других програм, решать мою задачу, это тоже самое что програмить в блокноте, смысл узкоспециализированных программ-это чтоб любая аспирантка ![]() Вы лучше тему поста прочтите. |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 7 Всего: 20 |
Я тоже сначала искал ломаную версию, пару раз натыкался на версию 2.0 Более поздние не нашел, видимо пока не могут сломать ![]() -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Dmi3ev |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
я просто посоветовал с точки зрения здравого смысла... какая программа, такая защита... по-моему, просто будет не очень оправдано делать крутую защиту для такой проги... хотя дело твое, я просто посоветовал...
не скажи, я в Excel гораздо быстрее реализую решение, чем ты средствами с++, и после этого я не собираюсь удалять этот файл, чтобы в следующий раз снова решать... у меня будет шаблон, который при этом будет очень подвижен...
такую точно, думаю, даже невозможно (не спорю), это же твое творение, но похожее что-то вполне... их очень много в инете... даже с исходниками... + можно это решить не с помощью программирования и изысков, а с помощью администрирования... хотя есть такое понятие: то, что можно посмотреть, можно скопировать, хотя хз... я бы просто закрывал доступ к диску где установлена программа, и все... или что-нибудь еще, есть программы которые лочат привод, дискетовод, юсб и др. устройства по паролю, короче записать не сможешь ничего... Добавлено @ 19:29 http://www.star-force.ru/solutions/product...dex.php?print=Y посмотри... тоже вариант... Это сообщение отредактировал(а) Dmi3ev - 7.4.2009, 19:30 -------------------- |
||||||
|
|||||||
Zakhar_Shan |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
... смотря что, математику? да, согласен, но если с такой позиции рассуждать, то всё можно писать на javaScript!!! С помощью HTML можно хоть 3D чертить... а БД на Microsoft Office Access !!! Другое дело писать прогу которая не содержит ничего лишнего, и визуализирует так, что любому сразу всё понятно. В CorelDraw и Photoshop тоже можно чертижи начертить, но почему-то умные люди пользуются AutoCad'ом и Компасом Добавлено через 8 минут и 37 секунд
Дайте пожалуйста ссылку где на это можно заработать деньги ![]() ![]() |
||||
|
|||||
Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Забиться что ли? Я пишу прогу, защищаю ее простейшим методом и выкладываю здесь на форуме. Таймер тикает - через 2 часа вы должны будете представить доказательства взлома (сказать что прога сделала или вывела на экран).
Эх... 1991. Моя курсовая... На турбо-с... Жаль исходники не сохранились - были на 5-дюймовых дискетах. |
||||
|
|||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
Zakhar_Shan, по поводу использования cpuid/3: она возвращает серийник проца, когда опция "отдачи серийника" включена в биосе. по умолчанию включена она была на моделях материнок, выпускавшихся в течение довольно непродолжительного времени. потом ее по дефолту отключили.
|
|||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
1000000dollars |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
А можно патчик к этому? ![]()
Попробовать можно ![]() |
||||
|
|||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
В принципе, наверное прикольно будет. Вот только правила бы конкретные написать ![]() |
|||
|
||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
||||
|
||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
Хе-хе, не пью я, ближе к концу следующей недели посмотрим что и как) |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 6 Всего: 250 |
так еще не известно кому пить то придется ![]() Это сообщение отредактировал(а) mes - 9.4.2009, 14:08 |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
![]() Очень даже известно, мне ![]() ![]() -------------------- |
|||
|
||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Издеваетесь? Я про пиво сказал образно - просто так. Спор чисто из спортивного интереса, естественно. Зарабатывать деньги надо другими способами. ![]() Мне интересно - кто кого перехитрит. |
|||
|
||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
Ну тогда у меня возражений нет ![]() PS: предлагаю обращаться на "ты" - мне кажется это проще ) Это сообщение отредактировал(а) 1000000dollars - 13.4.2009, 13:05 |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
1000000dollars, смотрите - мы бесплатно будем спорить, а на нас уже хотят заработать ![]() ![]() Если серьезно - то спор может вылиться в полне нужную вещь - реальные способы защиты/взлома в бюджетном варианте, так что думаю в тему этот спор впишется. |
|||
|
||||
1000000dollars |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 6.10.2007 Репутация: нет Всего: 8 |
||||
|
||||
Zakhar_Shan |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 14.6.2007 Где: Тюмень Репутация: 1 Всего: 2 |
||||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
gem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.5.2009 Репутация: нет Всего: нет |
Привет.
Я так понимаю, вопрос по теме уже решен. Но все таки добавлю еще один вариант решения, может кому пригодится. Когда-то давно ковырял совместно с форумчанами cbuilder.ru алгоритм шифрования/дешифрования raw ключа win98 с целью его "горячей замены". В результате была набросана маленькая утилитка для шифрования ключа вида AAAAA-BBBBB-00000-CCCCC-11111 в raw data вида 373DCA2CA7EB9A149D939000000000 и наоборот по алгоритму Base24. Для целей защиты программы можно взять дешифрующию процедуру утилиты и поместить ее в пользовательскую программу - она будет считывать заранее сгенерированный raw ключ из файла или реестра, дешифровывать в исходный ключ, который и проверяется на валидность. Для привязки к железу можно добавить в исходний ключ данные о номере винта или процессора. В прилагаемых исходниках утилиты имеется функция GetVolumeInformation для получения номера винта. Набор сомволов для ключа (ABCDEFGHMPRUNY0123456789) можно изменить на другие, но только в таком же количестве, иначе необходимо изменение алгоритма. Присоединённый файл ( Кол-во скачиваний: 25 ) ![]() |
|||
|
||||
A5uKa |
|
|||
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 2 Всего: 16 |
gem
Спасибо, пригодится |
|||
|
||||
Нитонисе |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
А чем закончился спор-то?)
|
|||
|
||||
NYX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 9.1.2007 Где: Россия, Москва Репутация: нет Всего: нет |
Сам лично когда то предлогал такую штуковину для единообразного лицензирования веб движка. Заключается вот в чем:
Клиент (программа), запускается, конектится к серверу (поскоьку это был движек сайта, то отсутствие инета как бы неактуально). Затем отсылает свой специальный ID (номер лицензии), получает в замен зашифрованный код функций. Затем клиентская часть при помощи ключа дешифрит полученные байты, формирует на этой основе образ и в итоге получаем рабочую штуку ![]() ![]() --------------------
'long long long' is too long for GC |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |