Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2015, 15:27   #1
Steve-g
 
Регистрация: 05.02.2014
Сообщений: 5
По умолчанию Метрологическая библиотека

Здравствуйте, форумчане!! Не подскажете, как решить задачу такого рода.

Имеется метрологическая библиотека, она используется приложением, которое что то делает и пишет в БД по событию. Так вот надо определять при записи в БД (то есть при работе приложения) каждый раз - совпадает ли md5 библиотеки с поверенной суммой.

Изначально я хотел просто проверять на совпадение сумм при старте процесса, но сейчас у меня появились мысли, а что если кто то изменит библиотеку уже при работе приложения, то есть непосредственно в памяти приложения сделает определенные изменения. Потому думаю, правильно ли проверять только 1 раз перед стартом, а если нет - то как вообще получать сумму у объекта в памяти и тем более сравнивать ее с md5 ФАЙЛА ибо при проверке то поверялся файл либы.

Подскажите пожалуйста направление , куда копать, я сильно озадачен этим вопросом просто((((
Steve-g вне форума Ответить с цитированием
Старый 22.01.2015, 16:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Погодь погодь погодь...
Я правильно понял: есть DLL или типа того, которую нужно защитить от взлома?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2015, 19:07   #3
Steve-g
 
Регистрация: 05.02.2014
Сообщений: 5
По умолчанию

Да, все верно, so-шка на Линуксе. Ее надо защитить от изменения. Суть в том, чтобы ее md5 всегда оставалась одной и той же.
Steve-g вне форума Ответить с цитированием
Старый 22.01.2015, 19:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Сложный вопрос...
Защищать придется и файл и то, что загрузчик в память закладывает. Я бы посоветовал протекторы, но не знаю какие есть для Линукса.
Одной простой проверкой можно и не отделаться, поскольку это легко снимут. Я и сам такие защиты снимал, что уж говорить - в играх патроны бесконечные ставил.

Как я понял ты хочешь снять контрольную сумму с файла, чтоб принимать решение делать в БД запись или нет. Может быть тебе стоит подумать не о защите библиотеки а о защите самой БД?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2015, 19:47   #5
Steve-g
 
Регистрация: 05.02.2014
Сообщений: 5
По умолчанию

Защиты БД от чего? тут дело в том, что библиотека принимает данные извне, которые на валидность при записи в БД не проверишь. к примеру . библиотека линкует с каким то действием координаты Глонасс , где это действо произошло. ее просто поменяют на 55.5555 всегда и никак не проверить, ведь она существует. А Надо, чтобы НИКТО не мог изменить либу, либо если вдруг это произошло я мог отследить изменение..

сложность - как снять md5 с находящейся в памяти либы((

и правильно ли это будет - вопрос еще...

ведь есть варианты -
1) она измененная уже на старте - это легко проверяемо, хотя механизмы проверки на старте тоже легко обмануть, изменив логику работы механизма.. исходя из этой мысли и думаешь над тем, что защита либы от изменений вообще - единственный выход
2)во время работы кто либо меняет либу в памяти.. тут вообще эпик фэйл, что делать...


так и остается вопрос - как защитить файл И область в памяти от изменений..
Steve-g вне форума Ответить с цитированием
Старый 22.01.2015, 20:23   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
тут вообще эпик фэйл
Ну вот для таких эпиков и придумали протекторы и аппаратные ключи.
Сама программа, даже скомпилированная по сути открытый исходник, только на машинном языке, но она доступна. Иначе никак. Протектор зашифровывает исполняемый файл таким образом, что его расшифровка становится затруднительной или даже бессмысленной. Сам по себе протектор является как-бы виртуальной машиной (наподобие ядра .NET), которая данные, зашифрованные в нем уже при исполнении расшифровывает и передает процессору.
Я поэтому и подумал прежде всего о протекторах.
Просто поверь наслово - так просто ты не напишешь программу защиты. Хорошую всмысле. Я тоже сходу не напишу, это нужно потратить немало времени и усилий.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2015, 20:40   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

В принципе проверку достаточно сделать один раз, после загрузки приложения.
В дальнейшем даже если либу изменят, то, что уже загружено в память не изменится.

Все это - путь в никуда, поскольку не составит труда изменить и приложение, на предмет не обращения внимания на изменения библиотеки.
waleri вне форума Ответить с цитированием
Старый 22.01.2015, 21:59   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Можете не переживать. Человек, который может изменить библиотеку, сможет победить вашу самописную защиту. Ставьте себе проверку на md5 от "дураков" и не тратьте время на ненужную работу.
pu4koff вне форума Ответить с цитированием
Старый 22.01.2015, 22:02   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
то, что уже загружено в память не изменится.
А разве нельзя будет изменить на лету содержимое либы? Это же любой отладчик умеет. Или нет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2015, 22:11   #10
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Можно, но если менять в памяти, тогда зачем париться менять файл...
Файл поменять легче.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
библиотека bicks Общие вопросы C/C++ 1 24.11.2013 17:48
БД Библиотека vaako Microsoft Office Access 0 02.05.2012 21:37
Библиотека btf Общие вопросы по программированию, компьютерный форум 0 03.12.2011 17:40
Библиотека Си++ Мелия Помощь студентам 2 21.06.2011 15:52
библиотека Serg12 Помощь студентам 1 09.05.2010 20:28