Мне нужно мнение от кого-то, у кого есть опыт, с гарантией целостности файла. Я пытаюсь защитить целостность моего файла с помощью контрольной суммы crc. Моя основная цель - сделать более сложным обход проверки файла лицензии (который заключается в разборке исполняемого файла и удалении условного перехода).Контрольная сумма CRC файла ELF
я придумал следующую мысль:
unsigned long crc_stored = 4294967295;
char* text_begin = (char*)0xffffffffffffffff;
char* text_end = (char*)0xffffffffffffffff;
int main(){
unsigned long crc = calc_checksum(text_begin, text_end);
if (crc == crc_stored)
//file is ok
}
Я редактировать .data
раздел эльфа двоичном следующим образом: text_begin
и text_end
будет содержать начальный и конечный адрес раздела .text
и crc_stored
контрольная сумма crc раздела .text
.
Я хотел бы знать, подходит ли это для этого, или есть лучшие методы?
Редактировать: Karoly Horvath имеет право. Предположим, я использую проверку crc для расшифровки некоторого кода. Я хотел бы знать, какой из лучших способов контрольной суммы ro защитить исполняемый файл. Олаф также имеет право. Я могу использовать алгоритм ша. Вопрос один и тот же.
Редактировать2: прекратите говорить, что любая защита может быть обойдена. Я знаю, и я просто хочу сделать это сложнее. Пожалуйста, ответьте на вопрос, можете ли вы.
Итак, теперь злоумышленник должен удалить не один, а два условных перехода ('crc == crc_stored') .... –
CRC не является сигнатурой/хэшем. – Olaf
Если вы не можете контролировать среду, в которой выполняется исполняемый файл, нет способа остановить определенный хакер. Независимо от того, сколько контрольных сумм, хэшей или шифров вы положите поверх нее. Таким образом остается только вопрос; сколько времени и денег вы готовы потратить, чтобы сделать свою задачу немного сложнее? – user694733