Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/47: Рейтинг темы: голосов - 47, средняя оценка - 4.70
 Аватар для FreeZon
8 / 10 / 8
Регистрация: 30.12.2013
Сообщений: 577

[Критика] Привязка к железу

08.11.2014, 22:48. Показов 10236. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят привет, хотел бы чтобы вы мне сказали какие есть уязвимости в моей ТРУ привязке

Прикрепил архив, в нем:
  1. Исходный тестовый проект
  2. Исходник сервера

На самом хостинге уже есть эти же файлы, поэтому не стоит создавать локальный сервер.
Я учел, то что реверсер может первым делать блокануть host и поэтому сделал проверку нету ли в host'e моего сервера...

Пожалуйста скажите какие есть в моей привязке дыры. И если вас не затруднит, как из исправить.
Вложения
Тип файла: rar HWID.rar (54.8 Кб, 337 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2014, 22:48
Ответы с готовыми решениями:

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

Привязка приложения к железу
Я бы хотел узнать есть ли привязка к железу в С# к файлу .ехе?И если есть можете дать код и сказать как узнать ключ?

Привязка к железу, как сделать, чтобы не слетала после переустановки Windows?
В данный момент привязка осуществляется к харду, но после переустановки windows, приходится переактивировать программу. public...

30
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
08.11.2014, 23:28
Все, что надо будет сделать чтобы сломать ваше приложение:
1. Открыть его dotPeek-ом.
2. Вставить вот здесь:
C#
1
2
3
4
5
if (GET(_server,_key))
                {
                    button1.Enabled = true;
                    button1.Text = "Активировано";
                }
вместо вызова GET(...) всего лишь true и пересобрать.

Добавлено через 4 минуты
Даже если обфусцировать (хотя нет опыта в защите .net app), то строковые литералы все равно видно в plain, и можно будет найти по слову "Активировано" код проверки.
0
 Аватар для FreeZon
8 / 10 / 8
Регистрация: 30.12.2013
Сообщений: 577
08.11.2014, 23:31  [ТС]
Цитата Сообщение от IamRain Посмотреть сообщение
1. Открыть его dotPeek-ом.
2. Вставить вот здесь:
Обфускатор у меня нормальный. Ну а в плане кода php, нету что ли дыр?
И как избавится от первой дыры которые вы нашли? Каким образом его защитить, если софт будет защищен обфукатором.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
09.11.2014, 00:16
+ еще варианты:
2. Можно взять откуда-то валидное значение ключа и в GET вторым параметром всегда его пихать. То есть также всегда будет возвращать true.
3. Если нету ключа, можно dos-ить/брутфорсить этот url, пока он не вернет true и использовать полученное значение ключа. Используемый алгоритм хеширования опять же можно достать из исходника.
Вся защита упирается в защиту исходного кода вашего клиента. А для managed app, как мне кажется, защиту трудно реализовать. Если только в очень больших проектах, где много кода, и с хорошими инструментами для обфускации.

Добавлено через 23 минуты
Как вариант усиления защиты: реализовать некоторый функционал в dll и при запуске приложения проверять большее количество уникальных параметров компьютера и приложения (какой-нибудь уникальный id дистрибутива, mac адрес, размер физической памяти, etc) => если условие выполняется, то скачивать недостающую библиотеку и загружать в домен приложения, без выгрузки в файловую систему. При этом было бы неплохо, чтобы на сервере хранились параметры ОС, и сборка была бы уже нативная, то есть не IL-code, а уже код платформы.
Получается этакое работающее только онлайн приложение. + Если копать глубже, то, теоретически, можно ведь подменять адреса dns-ов, которые будут возвращать IP-адреса серверов злоумышленника, которые, в свою очередь, будут возращать всегда true.
1
 Аватар для FreeZon
8 / 10 / 8
Регистрация: 30.12.2013
Сообщений: 577
09.11.2014, 00:20  [ТС]
Цитата Сообщение от IamRain Посмотреть сообщение
реализовать некоторый функционал в dll
Проблема в том что я ни когда не писал DLL и не знаю как это делается на C# как импортировать в свой проект тоже...
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
09.11.2014, 00:22
В VS => Создать новый проект (тип - Class Library - библиотека классов).
1
 Аватар для FreeZon
8 / 10 / 8
Регистрация: 30.12.2013
Сообщений: 577
09.11.2014, 00:28  [ТС]
Цитата Сообщение от IamRain Посмотреть сообщение
В VS => Создать новый проект (тип - Class Library - библиотека классов).
Можешь ссылку или сам пример написать как работать с ней. И подключать библиотеку в основной программе, да даже самое простое вывести MessageBox
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
09.11.2014, 00:39
Все просто:
Миниатюры
[Критика] Привязка к железу  
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
09.11.2014, 00:44
Когда пишешь свой код, то обычно добавляешь в References, подключать нужные namespace из этой библиотеки, ну и затем можно использовать описанные в ней классы. Вам же нужно будет по-другому сделать.
Как вариант: у класса Assembly есть событие AssemblyResolve, которое возникает тогда, когда приложение не может загрузить в свой домен приложения другую сборку. Вот в этом-то событии и загружайте эту сборку с вашего сервера.
1
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.11.2014, 00:46
Цитата Сообщение от FreeZon Посмотреть сообщение
ссылку или сам пример написать как работать с ней
Легко. Вот код простой формы с подключенной dll, в которой реализован класс защиты. И сам проект, на всякий случай)))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
using Protection;
 
namespace Protection_Test {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            this.Load += new EventHandler(Form1_Load);
        }
 
        void Form1_Load(object sender, EventArgs e) {
            Protector protector = new Protector();
            protector.protectEvent += new EventHandler<ProtectorEventArgs>(protector_protectEvent);
            protector.Application_Load();
        }
 
        void protector_protectEvent(object sender, ProtectorEventArgs e) {
            if (!e.CompareResult) {
                MessageBox.Show(e.Message, "Registration");
                Clipboard.SetText(e.MachineCode);
                this.Close();
            }
        }
    }
}
Вложения
Тип файла: rar Protection_Test.rar (76.7 Кб, 152 просмотров)
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
09.11.2014, 00:47
То есть в ссылках сборка висеть должна, а по факту с дистрибутивом поставляться не будет.

Добавлено через 1 минуту
* AppDomain.AssemblyResolve event
1
 Аватар для FreeZon
8 / 10 / 8
Регистрация: 30.12.2013
Сообщений: 577
09.11.2014, 00:56  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
в которой реализован класс защиты.
Интересно... а исход dll что там?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.11.2014, 01:01
Цитата Сообщение от FreeZon Посмотреть сообщение
а исход dll что там?
Простенький класс защиты. Можете Рефлектором посмотреть, если интересно. Привязка к некоторым компонентам машины.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.11.2014, 01:15
FreeZon, вот архив самой dll. Ну а алгоритм создания ключа - то же самое, только наоборот.
Вложения
Тип файла: rar Protection.rar (37.4 Кб, 137 просмотров)
1
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
09.11.2014, 09:27
Цитата Сообщение от FreeZon Посмотреть сообщение
Пожалуйста скажите какие есть в моей привязке дыры.
Привязка к железу - одна сплошная дыра.
Я знаю очень мало программ, которые ее используют.
Потому что это проблемы с клиентами: сменил диск - проблемы, вставил другую
сетевую карту - проблемы, запустил программу на виртуалке - проблемы, и т.д.
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
09.11.2014, 17:01
Убежденный, что вы предлагаете? Писать и делиться?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
09.11.2014, 17:58
Я предлагаю вообще не заморачиваться.
0
 Аватар для FreeZon
8 / 10 / 8
Регистрация: 30.12.2013
Сообщений: 577
09.11.2014, 18:35  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
Я предлагаю вообще не заморачиваться.
Вообще Windows удали да и все... "Не заморачиваться" так мне это надо, поэтому я и буду заморачиваться
0
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
09.11.2014, 18:51
Можно привязать к процессору (cpuid), уж его то редко кто меняет. И в принципе можно обойтись без dll, рефлексия в .net позволяет юзать asm вставки.
Цитата Сообщение от Убежденный Посмотреть сообщение
Я предлагаю вообще не заморачиваться.
Ну хотя бы от школоты и студентов защитить всё таки можно.
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
09.11.2014, 19:40
FreeZon,
Через реестр можно изменить путь к hosts
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2014, 19:40
Помогаю со студенческими работами здесь

Привязка по железу
не пойму в чем проблема

Привязка к железу
Здравствуйте, добрый вечер. Не знаю как правильно сформулировать свой вопрос, но постараюсь вам объяснить. Я кодер самоучка, и в данный...

Привязка к железу
Здравствуйте, как сделать так ,чтобы при получении HWID программа загружала только тот HWID, который она получила самый первый. Я к тому,...

Привязка к железу
как то я писал на паскале прогу которая привязывалась к железу и на других компах писала что это не лецензионная копия как написать на...

Привязка к железу
Смотрите у меня привязка стоит программы. Вот такой код (часть кода): try ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru