Вверх ↑
Этот топик читают: Гость
Ответов: 108
Рейтинг: 14
#1: 2009-05-26 14:13:48 ЛС | профиль | цитата
Появилась идея зделать проверку хешсуммы файла при запуске.Но проблема в том что когда записываешь значение в программу с которым она должня сверять только что вычесленную хешсумму - естественно хешсумма файла меняется, тоесть одним файлом это не зделать. Долго думал и придумал - при запуске программа постоянно ишет процесс,скажем 1.exe, если не находит,распаковывает файл и запускает его, а уже 1.exe постоянно мониторит изменение хешсуммы основной программы, если значения не совпадают - закрывает основную программу.Хочу спросить, всё ли я правильно представляю или это безполезно?
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2009-05-26 14:22:42 ЛС | профиль | цитата
ЛЮБОЙ процесс можно завершить(кроме системного, а может и его процесс завершить можно). так что мониторинг не пройдет...
карма: 10
0
Ответов: 108
Рейтинг: 14
#3: 2009-05-26 14:27:24 ЛС | профиль | цитата
ну завершили процесс, программа посмотрела что процесса нет - запустила снова,даже если файл удалить,она его всёравно создаст и запустит
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#4: 2009-05-26 14:29:44 ЛС | профиль | цитата
Assasin писал(а):
кроме системного, а может и его процесс завершить можно

Наш EnumProcess это умеет делать. Он может уничтожить любое приложение, даже системное
карма: 22

0
Ответов: 1161
Рейтинг: 160
#5: 2009-05-26 14:38:39 ЛС | профиль | цитата
ebripsy писал(а):
зделать проверку хешсуммы файла при запуске

попробуй хеш приписать в конец, а при запуске приложения просто прочитать файл приложения уже без этого хеша
карма: 0

0
Ответов: 108
Рейтинг: 14
#6: 2009-05-26 14:45:30 ЛС | профиль | цитата
так у меня exe программа.там сравнение если 1 (хешсумма,которая программа вычислила, онализировав сама себя) равно 2 (записаное в программу значение её же хеш суммы) - то всё ок. Но вот когда значение 2 записываешь в программу,при компиляции оно уже становится не действительным,т.к. реальная хешсумма меняется,соответственно программа сравнивать значения уже не будет.
карма: 0

0
Ответов: 1161
Рейтинг: 160
#7: 2009-05-26 14:51:40 ЛС | профиль | цитата
вычисляй хеш-сумму не все вместе, а только исполняемого кода без этого хеша
карма: 0

0
Ответов: 108
Рейтинг: 14
#8: 2009-05-26 14:58:46 ЛС | профиль | цитата
а не подскажите примерчик?
карма: 0

0
Ответов: 1161
Рейтинг: 160
#9: 2009-05-26 15:42:02 ЛС | профиль | цитата
вот что-то набросал, может поймешь
схемка получает хеш без последних 16 байт(в которых хранится записанный хеш) и читает сам хеш из этих последних байт
code_13457.txt
карма: 0

0
файлы: 1code_13457.txt [1.8KB] [114]
Ответов: 108
Рейтинг: 14
#10: 2009-05-26 16:20:54 ЛС | профиль | цитата
спасибо,всё понятно. только я вот пока не придумал по какой схеме зделать,толи писать хэш в конец файла,который равен хешу всех предидущих данных и сравнивать при запуске эти значения, с другой стороны получается это очень легко вычеслить и подменить записаный хеш в программе.
карма: 0

0
Ответов: 3851
Рейтинг: 159
#11: 2009-05-26 17:29:51 ЛС | профиль | цитата
клади в конец файла не сам хэш, а его проксоренное (каждый байт) значение. Операция XOR хороша тем, что при аовторении, даёт исходное значение
карма: 0
начавший
0
Ответов: 108
Рейтинг: 14
#12: 2009-05-26 19:24:34 ЛС | профиль | цитата
почти разобрался.подскажите пример вычисления хешсуммы данных программы - 16 последних байт для записи туда этого значения
------------ Дoбавленo в 19.28:
тоесть получается вот такая схема. вычесляется хеш программы - 16 последних байт,куда этот хеш записывается. при запуске постоянно идёт вычисления хеша и сравнение с тем значением что в последних 16 байтах.само значение при этом зашифрованно.вот тока в схеме не пойму как это зделать...
------------ Дoбавленo в 21.27:
спасибо,всё зделал.схему выложу чуть позже
карма: 0

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)