Защита от подмены: MD5 Protect, Hash Checker

Автор DarkSim, 2011 Дек. 09, 16:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] утилитазащита от подменыmd5 protecthash checkerцелостность файловхеш.dll проекторlibcurl

DarkSim

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

Комплект:
- Утилита для получения MD5 хеша из файлов
- Сам .dll протектор с .ini файлом
- Исходный код протектора (C++)

Как работает:
Протектор получает список файлов для проверки с веб сервера
-> Считывает список
-> Сверяет их хеш из списка с действующим хешом файлов
-> Удаляет список
=> Если хеш совпадает запускает Main.exe
=> Если хеш не совпадает - выдаёт ошибку с названием подменённого файла
Спойлер
## здесь был скриншот ##
[свернуть]

Описание:
Если всё устраивает: Заходим в папку "Compiled", берём файлы, копируем в папку с клиентом, хукаем MD5Protect.dll в Main.exe без вызова фукнции.

Если хотим изменить, что либо: Скачиваем сURL библиотеку, устанавливаем её (Русский гайд), линкуем в Solution и изменяем исходный код под нужды.

Конфигурация:
Protect.ini
Спойлер
ListURL  = Ссылка на лист с MD5 хешем
TempFile = Название временного файла
[свернуть]
Files.txt
Спойлер
Данные вносятся в формате:
<Hash> <File>

Пример:
e5b848a983fb8d4c79eb26bd86fe28bf .CustomSettings.ini
Путь к файлу указывается относительно положения протектора.
Генерировать хеш файла можно с помощью утилиты "MD5Hash.exe" (папка Utils)
[свернуть]

Скачать:
- MultiUpload

Кредиты:
DarkSim - Протектор, генератор хеша.
PsychoGod - Спасибо за пример чтения файла.

P.S.: .NET Framework 4

MuScorpion

При попытке запустить main, пишет - libcurld.dll не был найден

Simp1e

Вот интересно что будет если сначала запустить Main.exe потом производить  подмена фаила

MuScorpion

Цитата: Simp1e от 2011 Дек. 26, 17:05  Вот интересно что будет если сначала запустить Main.exe потом производить  подмена фаила
Ответь на мой вопрос,потом я отвечу на твой)

NightWish

#4
Цитата: MuScorpion от 2011 Дек. 26, 17:17  При попытке запустить main, пишет - libcurld.dll не был найден
скачай libcurld.dll, или скомпиль его и вставь в папку с мейном.

MuScorpion

Теперь вопрос с обходом.Удаляешь Protect.ini в папке клиента и MD5Protect протект не работает.Тоесть спокойно можно менять файлы.

8BitCore

Цитата: MuScorpion от 2011 Дек. 26, 19:13  Теперь вопрос с обходом.Удаляешь Protect.ini в папке клиента и MD5Protect протект не работает.Тоесть спокойно можно менять файлы.
Вам дали сорс. Берем не выносим в конфиг, а все изменяем внутри.

MuScorpion

Цитата: 8BitCore от 2011 Дек. 26, 21:08  Вам дали сорс. Берем не выносим в конфиг, а все изменяем внутри.
Как я понял,нужно что бы конфиги Protect.ini были в самой dll?

NightWish

#8
Цитата: MuScorpion от 2011 Дек. 26, 22:18  Как я понял,нужно что бы конфиги Protect.ini были в самой dll?
как ты понял да, а как надо нет, внутри ДЛЛ ставишь то, что тебе надо.

Mr.Kernighan

ЦитироватьВот интересно что будет если сначала запустить Main.exe потом производить подмена фаила
В таком случае потокам проверяем еще раз, циклически естественно. На время его не работы ставим его в суспенд.

Похожие темы (5)

Сообщений: 4
Просмотров: 3712

Сообщений: 27
Просмотров: 9037

Сообщений: 10
Просмотров: 4211