Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 13.12.2014, 15:43   #91
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Да хоть 33 ключа, это не значит что шансы на взлом уменьшаются в 33 раза.

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

Все процедуры описывать довольно догло, в кратце есть Switch(OPCODE) по нему выполняются действия активации проги в несколько этапов, до получения опкода трафик расшифровывается, ну а на сервере(на моем компе) уже идет проверки на все ключи и подтверждение активации. если все совпадает и дата и активация, то шифруются пакеты с определенными данными и высылаются на клиент, ну и так вот все происходит
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 14.12.2014, 20:17   #92
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
неее, просто шансы подобрать ключ к расшифровки трафика снизится.
вот например рабочий клиент, но не активирован сервером [Ссылки могут видеть только зарегистрированные пользователи. ]

Все процедуры описывать довольно догло, в кратце есть Switch(OPCODE) по нему выполняются действия активации проги в несколько этапов, до получения опкода трафик расшифровывается, ну а на сервере(на моем компе) уже идет проверки на все ключи и подтверждение активации. если все совпадает и дата и активация, то шифруются пакеты с определенными данными и высылаются на клиент, ну и так вот все происходит

Насколько я понимаю подбирать никто не будет. Будут подмены.
  Ответить с цитированием
Старый 15.12.2014, 00:09   #93
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Насколько я понимаю подбирать никто не будет. Будут подмены.

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

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 30.01.2015, 00:38   #94
Почетный Пользователь
 Сержант
Аватар для MembRupt
 
MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(
Регистрация: 18.07.2013
Сообщений: 148
Популярность: 83981
Сказал(а) спасибо: 564
Поблагодарили 258 раз(а) в 195 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Не знаю почему, но у меня функция GetHDDStaticSerial() работала некорректно. Вставил флешку - значение другое.
Оказалось, что по запросу "SELECT * FROM Win32_DiskDrive" первым элементом вылезала пустая строка, которая и сбивала всё с толку, поэтому её необходимо пропустить
  Ответить с цитированием
Старый 30.01.2015, 17:01   #95
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Сообщение от MembRuptПосмотреть сообщение
Не знаю почему, но у меня функция GetHDDStaticSerial() работала некорректно. Вставил флешку - значение другое.
Оказалось, что по запросу "SELECT * FROM Win32_DiskDrive" первым элементом вылезала пустая строка, которая и сбивала всё с толку, поэтому её необходимо пропустить

Есть такое.
Но сейчас я работаю над более современной системой активации.
Если тесты пройдут норм, то возможно опишу как и что.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 02.02.2015, 00:11   #96
 Разведчик
Аватар для Lubot
 
Lubot скоро будет известенLubot скоро будет известенLubot скоро будет известен
Регистрация: 29.07.2012
Сообщений: 12
Популярность: 231
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для Lubot с помощью Skype™
 
По умолчанию Re: [C#] Привязка к железу v2.

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

Последний раз редактировалось Lubot; 02.02.2015 в 00:50.
  Ответить с цитированием
Старый 02.02.2015, 07:27   #97
Почетный Пользователь
 Сержант
Аватар для MembRupt
 
MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(
Регистрация: 18.07.2013
Сообщений: 148
Популярность: 83981
Сказал(а) спасибо: 564
Поблагодарили 258 раз(а) в 195 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Дополнительный параметр в GET запросе к серверу. Дополнительный стобец в таблице БД. Сделать ответом от сервера параметр license=1 или license=2 для выбора версии. Но без вашей смекалки обойти защиту не составит проблем
  Ответить с цитированием
Старый 02.02.2015, 12:28   #98
 Разведчик
Аватар для Lubot
 
Lubot скоро будет известенLubot скоро будет известенLubot скоро будет известен
Регистрация: 29.07.2012
Сообщений: 12
Популярность: 231
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для Lubot с помощью Skype™
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Сообщение от MembRuptПосмотреть сообщение
Дополнительный параметр в GET запросе к серверу. Дополнительный стобец в таблице БД. Сделать ответом от сервера параметр license=1 или license=2 для выбора версии. Но без вашей смекалки обойти защиту не составит проблем

ну этоже надо создовать еще один count вроде или не?
if ($count == 1) //Если число рядков равно 1
else if ($count == 0) //Тогда если число рядков равно 0
к примеру group5 это одна, group10 дргуая группа
  Ответить с цитированием
Старый 27.03.2015, 10:31   #99
 Разведчик
Аватар для marik768
 
marik768 никому не известный тип
Регистрация: 27.03.2012
Сообщений: 9
Популярность: 10
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

все норм было ни чего не делал, а вот щас вот такая ошибка
[Ссылки могут видеть только зарегистрированные пользователи. ]
ошибку кидает тут
Код:
if (responseSplitted[0].Split('=')[1] == "1")
код обычный, как и сказал ни чего не менял
Код:
public static void initLoad()
    {
        Random curRandom = new Random();
        string preKey = randomStringWithNumbers(curRandom.Next(15, 21), curRandom);
        Int32 XORkey = curRandom.Next(1, int.MaxValue);
        string pubKey = DigitalSign.XOR(Settings.pubKeyNotXORed, XORkey);
        Int32 token = curRandom.Next(1000000, int.MaxValue);
        string infoXORed = DigitalSign.XOR(info(curRandom, token, preKey), XORkey);
        string responseXORed = DigitalSign.XOR(GetRequest(DigitalSign.XOR(Settings.urlToScript(XORkey), XORkey), DigitalSign.XOR(infoXORed, XORkey)), XORkey);
        string[] responseSplitted = DigitalSign.XOR(responseXORed, XORkey).Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
        try
        {
            if (responseSplitted[0].Split('=')[1] == "1")
            {
                if (Int32.Parse(DigitalSign.DecryptString(responseSplitted[4], preKey)) == token)
                {
                    if (HWIDGrabber.GetUHI == Encoding.UTF8.GetString(Convert.FromBase64String(responseSplitted[2].Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries)[0])))
                    {
 
                        if (DigitalSign.CompareRSAMethod(getSignedText(responseSplitted), responseSplitted[responseSplitted.Length - 1].Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries)[0], DigitalSign.XOR(pubKey, XORkey)))
                        {
                            if (responseSplitted[1].Split('=')[1] == "0")
                            {
                                Application.Run(new Main());
                            }
                            else
                            {
                                Home wid = new Home();
                            }
                        }
                    }
                }
            }
            else
            {
                Home wid = new Home();

Последний раз редактировалось marik768; 27.03.2015 в 10:38.
  Ответить с цитированием
Старый 27.03.2015, 10:48   #100
Почетный Пользователь
 Сержант
Аватар для MembRupt
 
MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(MembRupt сломал счётчик популярности :(
Регистрация: 18.07.2013
Сообщений: 148
Популярность: 83981
Сказал(а) спасибо: 564
Поблагодарили 258 раз(а) в 195 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Сообщение от marik768Посмотреть сообщение
а вот щас вот такая ошибка

Сервер перестал вам корректно отвечать license=1 или license=0, смотрите сниффером или в отладчике, что возвращает сервер
  Ответить с цитированием
Старый 28.03.2015, 02:20   #101
 Разведчик
Аватар для marik768
 
marik768 никому не известный тип
Регистрация: 27.03.2012
Сообщений: 9
Популярность: 10
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Сообщение от MembRuptПосмотреть сообщение
Сервер перестал вам корректно отвечать license=1 или license=0, смотрите сниффером или в отладчике, что возвращает сервер

с сервером все норм, забыл добавить что на других компах все норм. у меня вин7 ультимате 64
  Ответить с цитированием
Старый 28.03.2015, 11:18   #102
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Сообщение от marik768Посмотреть сообщение
с сервером все норм, забыл добавить что на других компах все норм. у меня вин7 ультимате 64

Глянь, что отвечает сервер и анализируй.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 28.03.2015, 18:43   #103
 Разведчик
Аватар для marik768
 
marik768 никому не известный тип
Регистрация: 27.03.2012
Сообщений: 9
Популярность: 10
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Сообщение от NickiteeПосмотреть сообщение
Глянь, что отвечает сервер и анализируй.

не я всеравно исключаю сервер, т.к думаю что сама программа чтото не то отправляет
вот поставил бряк на страку, где еррорит
[Ссылки могут видеть только зарегистрированные пользователи. ]
мне вот както писали, что responseSplited пустой
  Ответить с цитированием
Старый 30.09.2017, 01:02   #104
 Разведчик
Аватар для CasoHack
 
CasoHack никому не известный тип
Регистрация: 05.03.2015
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Цитата:
Сообщение от NickiteeПосмотреть сообщение
Intro

Всем привет! Т.к. привязка v1 была сделана не совсем правильно (особенно хранение hwid) я решил сделать новую версию, на этот раз подменить ответ будет невозможно. Только надо изменять инструкции программы для "кряка". В этой привязке мы сможем задавать время, до которого будет действительна лицензия.

Что нам понадобится


1. Класс для получения HWID (HardWare ID) - скачать
2. Класс для работы с RSA на C# - скачать
3. PHP скрипты - скачать
4. Хостинг с поддержкой PHP - на данном примере я буду использовать хостинг от koding.com (не реклама)
5. MySQL - на данном примере я буду использовать [Ссылки могут видеть только зарегистрированные пользователи. ] (не реклама)
6. Microsoft Visual Studio 2008+ с редистрибутивом C# - гугл : )
7. Базовые знания (например как добавить класс в проект)

Начнём


1. Для начала необходимо создать MySQL базу. Для этого зарегистрируемся на [Ссылки могут видеть только зарегистрированные пользователи. ] и создадим MySQL базу (не MSSQL).
У вас должно получится что-то типо такого:скрин

2. Теперь создадим таблицу в MySQL базе данных, где будет храниться информация для лицензии. Для этого зайдём в phpMyAdmin, введём туда данные (пароль после регистрации бд приходит на почту) и нажмём "Создать таблицу", количество полей 2 - с именами "Hardware ID" и "End Time", тип - TEXT, и далее обязательно выставтить сравнение на "utf8_general_ci". и нажать "Сохранить".
скрин


3. Теперь надо сгенерировать паблик и приват ключи RSA. Для этого создадим проект с шаблоном "Приложение Windows Forms" и назовём его RSAKeysGenerator, далее на основную Form кинем 2 textBox-a, 2 label-a и 1 кнопку. Так же добавим в проект DigitalSign.cs.
скрин

4. На кнопку а именно в эвент Click запишем код:
Код:
            string publicKey = String.Empty;
            string privateKey = String.Empty;
            DigitalSign.AssignNewKey(ref privateKey, ref publicKey);
            textBox1.Text = privateKey;
            textBox2.Text = publicKey;
Главное не путать textBox-ы куда записываем ключи! (Хотя определить private и public ключи не сложно)

5. Теперь этот проект понадобится только для генерации ключей.

6. Теперь откроем globalsettings.php и изменим настройки:
Код:
$RSAprivateKey = "<RSAKeyValue><Modulus></Modulus><Exponent></Exponent></RSAKeyValue>";
Сюда в кавычки мы скопируем приват ключ, у меня получилось так
Код:
$RSAprivateKey = "<RSAKeyValue><Modulus>qPATiJQqZiJayNJkknPQ4IhFBXDHWYiBJeSE2QiuRwb5en+58OADRh6ssXzZIo9CyHDjlLB8ETjkrY4pPjO+SmH9h55tVns/VKyi73rZxDg4+EsenZUXa19z7SuzlhCyq/JXW2/SMSADBBKjch2L+JQuZi46eHxWZVyNFvzKy8XaCWYJFDgk9XYirUZ0XesL/UYMxTjiePCOjZJM6w6X+iUGWZhMcDfXsFnLpWJ1rXPUBGjPJrrnFs7GyKuuyw4UsXkD6jH6R4uiP2392Zf6bHwnQC5xGdT/1kP/kjIa42EakXrwkcQkpJj1SSy9MvYX0TJQ5SKOwi5jXEF0GZAVHw==</Modulus><Exponent>AQAB</Exponent><P>4aEI1nXR2GLpbdyV5VfQkq5ZlO3/daczu0ns52RE6pgVVO32L+cFsFYJy03d8KmAI5MozZ8BMv15ug7Hj6m+/RyMQIBOcLHwNLgs/MPzF/BOArbORsDu+6jHr022kN4Org5NLz/3pkVPA/zOuVqIuKGP3mSvxXS+mofiLZoQz3E=</P><Q>v62DvtWjTJ+PDvCxdILRBplVEjFuufCCYSIP6XcsC5jq5hbMizsOka6WmYaoK8jmyXi1idbWjLU5N/Fj5W0pnslE9lRoDlLD+xmhWuV0TwEeHbLl0+kWJ6CAcMFOFF4LiAbtN6SG0WNw8AJtwOTqjxzlvDVfeck07BGEgzaPBY8=</Q><DP>I8RYV07kDg5X/K9sH6gVCzuSPdagmXEA9V6ZrHCrsBidwRHb5eoUb8ij0tOsLBtikcEhRb8//GpMIp93KSH6gbtFzG/Kf3jloCXWE9eoMJJKe4mpF3Q8Li6qQPLrzvk0kIj52VSlmHkCNpqb1qwwYjxSRynk50NDd9G0nBABPDE=</DP><DQ>UyEmvTIcc5PT0I/09mnxy6Heclh8BCpZ8VR7gC6OLK1yWr3SkiPXyrjkWcs7zlmANiqi2RgSzs2d9jQ7tfnlDheOUCMFSgj9ND7GawyOp+D9NbYr1P8G+8KxUbWUbmLnL2SJpxM04UT2azEydnERhWXsAPdI5CGuUR+7z8huuOM=</DQ><InverseQ>Lx6Fnqvj7/uo6MxSMm26lHReHTHn8SGFx1mI7Z+4+NgB9hqO+OaCXZ3oQJiSVlHzv7Be+72mPyu6A60Y5DUBAif3NA90vLJ+3hFMeD9jA5KhHDSbOgFoqKzHmedXl+lYQhhhaFpsomInOTMItrSvn1tNwi6RU1pJSc2suQT9r5c=</InverseQ><D>O71Buw9h+uH1JoS3yc4os+2cMrNR20hZGxQ3IiRetIEz4WyfTR16KuaX/N+ATSdJ32WEJMVP6isrOnBGB1f214jVRYrxcR5+I6w0pejUbv3Or4ao2eKp+G81qE3G4K8g74rv90aQloySZHNO1wC5yXpk+f8o8AhP6OIUhmd4Mxw9T12sAvdp2Px3FsG4F2r2pF5YNIt8PAcV6uhYiZEdb+qR+HrZOj99Is+aGwuAhlAmsQcOEkARYuYwlYI6ZYjGsYWyEQGscdOMBFXrR6k1zdO6B0gVns5rWHOM82805qU8EPAlf19fL2Pqf8H1evTsLWQMNnoqqUDDZihD3FwQ4Q==</D></RSAKeyValue>";
Далее
Код:
$MySQL_hostname = "sql.site.com";
Мы заменяем на адрес сервера где расположена MySQL БД.
В моём случае:
Код:
$MySQL_hostname = "sql3.freesqldatabase.com";
Далее
Код:
$MySQL_username = "user";
Мы за меняем на имя пользователя для MySQL бд.
В моём случае:
Код:
$MySQL_username = "sql313795";
Далее
Код:
$MySQL_password = "password";
Мы заменяем на пароль для пользователя для MySQL бд.
Далее
Код:
$MySQL_databasename = "database name";
Мы заменяем на имя базы данной для MySQL.
В моём случае:
Код:
$MySQL_databasename = "sql313795";
Далее
Мы заменяем имя таблицы MySQL бд
Код:
$MySQL_table = "table name";
В моём случае:
Код:
$MySQL_table = "licensetable";
Всё, сохраняем настройки, загружаем все php файлы на сервер.

7. Теперь создадим новый проект тот же шаблон "Приложение Windows Forms". На него кинем 1 richTextBox, 1 кнопку. Добавим в проект DigitalSign.cs и HWIDGrabber.cs
Теперь объявим пару функций (можно прямо в коде формы)
Код:
        public string getDays(TimeSpan time)
        {
            return ((time < TimeSpan.Zero) ? String.Format("Лицензия истекла {0} дней {1} часов {2} минут назад", Math.Abs(time.Days).ToString(), Math.Abs(time.Hours).ToString(), Math.Abs(time.Minutes).ToString()) : String.Format("Лицензия активна. Осталось {0} дней {1} часов {2} минут", time.Days, time.Hours, time.Minutes));
        }

        public static string getSignedText(string[] response)
        {
            string returned = String.Empty;
            for (int i = 0; i < response.Length - 1; i++)
            {
                returned += response.GetValue(i) + "\r\n";
            }
            return returned;
        }
        public static string info(Random rn, Int32 token1,string preKey)
        {
            string tokenString = String.Format("token={0}&hwid={1}", DigitalSign.EncryptString(token1.ToString(), preKey), HWIDGrabber.GetUHI);
            return tokenString;
        }
        public static string GetRequest(string url, string post)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            byte[] buffer = Encoding.UTF8.GetBytes(post);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = buffer.Length;
            request.Method = "POST";
            Stream newStream = request.GetRequestStream();
            newStream.Write(buffer, 0, post.Length);
            newStream.Close();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader strReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1251));
            string WorkingPage = strReader.ReadToEnd();
            response.Close();
            return WorkingPage;
        }


        public static string randomStringWithNumbers(int maxlength, Random rn)
        {
            StringBuilder sb = new StringBuilder();
            char[] allowedChars = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
            for (int i = 0; i < maxlength; i++)
            {
                int n = rn.Next(0, allowedChars.Length);
                if (char.IsLetter(allowedChars[n]))
                {
                    if (rn.Next(0, 2) == 0)
                    {
                        sb.Append(allowedChars[n].ToString().ToUpper());
                    }
                    else
                    {
                        sb.Append(allowedChars[n]);
                    }
                }
                else
                {
                    sb.Append(allowedChars[n]);
                }
            }
            return sb.ToString();
        }
Теперь на эвент OnLoad на нашей форме запишем код:
Код:
 richTextBox1.Text = HWIDGrabber.GetUHI;
p.s. если у вас ругается на ссылки, то вы должны подключить следующие:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
А если ругается на Managment, то добавьте в ссылки System.Managment в .net ветке

Далее на эвент кнопки Click:
Код:
//////////////////////////////////////////////////////////////////////////////////////////
            string pubKeyNotXORed = "<RSAKeyValue><Modulus></Modulus><Exponent></Exponent></RSAKeyValue>"; //Сюда в кавычки копируем ПАБЛИК rsa ключ.
//////////////////////////////////////////////////////////////////////////////////////////

            Random curRandom = new Random();
            string preKey = randomStringWithNumbers(curRandom.Next(15, 21), curRandom);
            Int32 XORkey = curRandom.Next(1, int.MaxValue);

///////////////////////////////////////////////////////////////////////////////////////////
            string urlToScript = DigitalSign.XOR("http://site.com/base.php", XORkey); //Вместо site.com/base.php полный путь до скрипта на вашем хостинге
///////////////////////////////////////////////////////////////////////////////////////////

            string pubKey = DigitalSign.XOR(pubKeyNotXORed, XORkey);

            Int32 token = curRandom.Next(1000000, int.MaxValue);
            string infoXORed = DigitalSign.XOR(info(curRandom, token, preKey), XORkey);
            string responseXORed = DigitalSign.XOR(GetRequest(DigitalSign.XOR(urlToScript, XORkey), DigitalSign.XOR(infoXORed, XORkey)), XORkey);
            string[] responseSplitted = DigitalSign.XOR(responseXORed, XORkey).Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
            try
            {
                if (responseSplitted[0].Split('=')[1] == "1")
                {

                    if (Int32.Parse(DigitalSign.DecryptString(responseSplitted[4], preKey)) == token)
                    {
                        if (HWIDGrabber.GetUHI == Encoding.UTF8.GetString(Convert.FromBase64String(responseSplitted[1].Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries)[0])))
                        {
                            if (DigitalSign.CompareRSAMethod(getSignedText(responseSplitted), responseSplitted[responseSplitted.Length - 1].Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries)[0], DigitalSign.XOR(pubKey, XORkey)))
                            {

                                DateTime CurrentTime = DateTime.Parse(responseSplitted[2].Split('=')[1]);
                                DateTime EndTime = DateTime.Parse(responseSplitted[3].Split('=')[1]);
                                TimeSpan ActivatedTime = EndTime.Subtract(CurrentTime);
                                if (ActivatedTime < TimeSpan.Zero)
                                {

                                    MessageBox.Show(getDays(ActivatedTime));
                                    //Тут мы что-то делаем, если лицензия истекла
                                }
                                else
                                {
                                    MessageBox.Show(getDays(ActivatedTime));
                                    //Тут мы что-то делаем, если лицензия активна.
                                }

                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Лицензии не обнаружено!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка!\nКатастрофа!\nАхтунг!");
                //AnyErrors
            }
8. Запускаем, видим что в richTextBox появился наш HWID.
Жмём на кнопку, получаем
[Ссылки могут видеть только зарегистрированные пользователи. ]

9. Идём в phpMyAdmin, открывает нашу таблицу выбираем "Вставить", в Hardware ID пишем то, что выдал richTextBox, в EndTime время окончания, строго в таком формате: 14.07.2013 20:00:00
[Ссылки могут видеть только зарегистрированные пользователи. ]

10. Опять нажимаем на кнопку, и получаем:
[Ссылки могут видеть только зарегистрированные пользователи. ]

11. Пробуем поставить время окончания лицензии раньше нашего текущего времени, получем:
[Ссылки могут видеть только зарегистрированные пользователи. ]


Заключение


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

За основу для работы с RSA на php были взяты скрипты от Jim Wigginton

Гайд подготовил Nickitee специально для zhyk.ru
Автор не несёт ответственности за пользование информацией
При копировании на другие сайты/блоги/форумы и т.п. - указывать автора

Можешь помочь пишет Вроде бы все делал как у тебя показано !
  Ответить с цитированием
Старый 29.04.2018, 17:07   #105
 Разведчик
Аватар для prizrak115
 
prizrak115 никому не известный тип
Регистрация: 28.04.2018
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: [C#] Привязка к железу v2.

Можете помочь скрины не открываются тупа грузят потом "Не удается получить доступ к сайту". Уже через анимайзер пытался через другой браузер никак.
  Ответить с цитированием
Ответ

Метки
c# coding, привязка, nickitee

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] Привязка к железу RChesteR Web-программирование и технологии 3 06.01.2017 16:20
Привязка к железу mires51 С/С++ 1 22.08.2011 16:06

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 05:18.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net