Загрузка...

Привязка к железу. C#

Тема в разделе C# создана пользователем Alex_inactive 18 мар 2013. 3475 просмотров

Загрузка...
  1. Alex_inactive
    Alex_inactive Автор темы 18 мар 2013 14 18 мар 2013
    Привязка к железу. C#.






    Привет, сегодня решил написать довольно таки "hard" гайд по привязке к железу, кому то он покажется сложным, кому-то нет - не важно! Принцип прост - при запуске генерируется уникальный ключ, который после высвечивается в текст боксе, юзер отправляет вам ключ, вы добавляете в базу его Ник(логин) и сам ключ. Тобишь кроме него никто не сможет зайти по этому логину.

    Что нам потребуется:






    1. Компилятор C#, я советую Microsoft Visual Studio 2008/2010


    2. Хостинг с поддержкой php, для начала советую h u t 2 . r u (удалить пробелы)


    3. Базовые знание по СиШарпу


    4. Точные действия по гайду


    5. И как всегда руки (желательно прямые) и конечно серое вещство.


    6. Добавить следующие библеотеки:



    Код
    using System.IO;

    using System.Net;

    using System.Management;


    7. Добавить Management, Кликаем на References(Ссылки) правой кнопкой, Add Reference(Добавить Ссылку), Там выбрать .NET и найти System.Management и нажать ОК.


    [IMG]2. Теперь нам надо сгенерировать SYS-KEY, для этого получим HDD Serial Number где установлена Windows и закпритуем самым обычным способом, который я взял у TBX1n.

    Для этого добавим после:



    Код
    public Autorization() //Имя вашей формы

    {

    InitializeComponent();

    }
    Следующее:



    Код
    private string Crypt(string text)

    {

    string rtnStr = string.Empty;

    foreach (char c in text) // Цикл, которым мы и криптуем "текст"

    {

    rtnStr += (char)((int)c ^ 1); //Число можно взять любое.

    }

    return rtnStr; //Возвращаем уже закриптованную строку.

    }
    3. Теперь на эвент: Form_Load, добавим код:



    Код
    try

    {

    string drive = Environment.GetFolderPath(Environment.SpecialFolder.System).Substring(0, 1);

    ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\"");

    disk.Get();

    string diskLetter = (disk["VolumeSerialNumber"].ToString());

    string lol1 = (Crypt(diskLetter.ToString()));

    textBox1.Text = lol1;


    }

    catch (Exception)

    {

    textBox1.Text = "Error to generate SYS code!";

    }
    Генерируем ключ и выводим в текстБокс1.

    4. Теперь, создадим файл db.php, и воткнём в него код:



    Код
    <?



    ?>
    ТЕПЕРЬ! Каждый раз когда вам надо добавить нового юзера вы должны открыть db.php через FTP и ввести инфо юзера таким образом:



    Код
    <?

    UserName|SYS-KEY

    UserName2|SYS-KEY

    ?>
    И так далее...

    5. Теперь зальём файл login.php на наш хост с таким содержанием:



    Код
    <?php



    $login = $_POST['log'];

    $password = $_POST['pas'];

    if($login == 'Вписываем логин' && $password == 'пароль' && !empty($login) && !empty($password))

    {

    $lines = file('db.php');

    foreach($lines as $single_line)

    echo $single_line . "<br />\n";

    }

    else

    {

    $URL="http://www.google.com";

    header ("Location: $URL");

    }

    ?>
    В поля логин и пароль вписываем значения, при которых юзер при запросе, ответ получт db.php, если юзер прийдёт на login.php без post параметра log,pass то его перенаправит на гугл :D.

    6. Теперь добавим на буттон код:



    Код
    String password = "log=ЛогинКоторыйЛежитВLogin.php&pas=АналогичноПасВLogin.php";

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://сайт.hut2.ru/login.php");

    request.UserAgent = "Opera/9.80";

    request.Method = "POST";

    request.ContentType = "application/x-www-form-urlencoded";

    byte[] EncodedPostParams = Encoding.ASCII.GetBytes(password);

    request.ContentLength = EncodedPostParams.Length;

    request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);

    request.GetRequestStream().Close();

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    string html = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("windows-1251")).ReadToEnd();

    string[] stringSeparators = new string[] { "\n" };

    string[] result = html.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);


    string PolucheniiNomer = "";



    foreach (string stroka in result)

    {

    if (stroka.IndexOf(textBox2.Text) != -1)

    {

    string[] NashaStroka = stroka.ToString().Split((Convert.ToChar("|")));


    string reLoL0 = (Crypt(NashaStroka[1].ToString()));

    PolucheniiNomer = reLoL0.ToString();


    }

    }



    string HoldingAdress = "";

    try

    {

    string drive = Environment.GetFolderPath(Environment.SpecialFolder.System).Substring(0, 1);

    ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\"");

    disk.Get();

    string diskLetter = (disk["VolumeSerialNumber"].ToString());

    HoldingAdress = diskLetter;



    }

    catch (Exception)

    {

    MessageBox.Show("Critical error, application automatically exit", "", MessageBoxButtons.OK, MessageBoxIcon.Error);

    Application.Exit();

    }






    if (PolucheniiNomer == HoldingAdress)

    {

    MessageBox.Show("Loging Succefull!");

    }

    else

    {

    MessageBox.Show("Loging Fail!");

    }
    7. Запускаем, получаем SYS-KEY, на фтп в db.php добавляем строку в теги



    Код
    <?

    ?>



    Код
    UserName|SYSKEY
    [/CODE]

    [/color]


    8. Всё, если вы всё правильно сделали, у вас должны было появиться такое окошко:


    [IMG]


    9. Гуглим: DotNetReactor 4.0.0.0 + Crack, качаем, защищаем код проги.





    10. PROFIT!

    Поехали...





    1. Создадим формочку с 2 group box, 1 label, 2 textBox-a, 1 button.
     
  2. Tuborg_inactive
    Tuborg_inactive 24 сен 2013 Забанен 3 4 сен 2013
    Слабоватая Привязка :facepalm:
     
  3. NeonEye
    NeonEye 24 сен 2013 Заблокирован(а) 496 1 июн 2013
    Ну хоть что то, верно? Или выложи сам какую нибудь привязку, которая оказалась бы не слабой.
     
  4. cR0NuS
    cR0NuS 3 май 2016 Заблокирован(а) 218 3 май 2016
    Не знаю как вам,но для новичков топик во:good:
    Всё хорошо объяснил,сам кое что воспринял!
    В общем молодец!
     
Top