 |
|

29.05.2021, 23:31
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Занимался проверкой файлов и возник вопрос как бы сделать это быстрее?
Код:
[CODE]
bool CheckSum(string newfile, int newfilesize, int newchecksum)
{
int flenght = newfilesize; //4696403; //FSIZE
int sum = newchecksum; //858273431; //CSUM
FILE* f;
if (!(f = fopen(newfile.c_str(), "rb")))
{
return false;
}
byte b;
unsigned int Csum = 0;
unsigned int Fsize = 0;
while (fread(&b, sizeof(byte), 1, f))
{
Fsize++;
Csum += b;
}
fclose(f);
//DEBUG: для генерации (CSUM) и размера файла (FSIZE) убрать комменты
/*ofstream myfile("CheckFiles_"+ newfile +".txt");
if (myfile.is_open())
{
myfile
|
|
|

30.05.2021, 00:24
|
|
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами:
4831039
Репутация:
1976
|
|
Только размер файлов? Может лучше md5/crc32 сверять? Не быстро, но будет надежнее
|
|
|

30.05.2021, 00:27
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Сообщение от òbi
Только размер файлов? Может лучше md5/crc32 сверять? Не быстро, но будет надежнее
Просто есть идея сделать так чтобы сверялись все файлы по списку из System папки lineage, потом Maps.
Но то что выше работает очень долго по такому алгоритму.
Возможно есть вариант проще с проверкой не только по размеру, но и по crc или md5 и быстрее чем сейчас?
|
|
|

30.05.2021, 01:04
|
|
Новичок
Регистрация: 08.11.2007
Сообщений: 1
С нами:
9741040
Репутация:
0
|
|
А зачем простите сверять размер файла если есть сверка CRC ?
Если у исходного файла отличается хоть 1 байт, контрольная сумма измениться, не говоря о размере.
|
|
|

30.05.2021, 01:07
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Сообщение от Deazer
А зачем простите сверять размер файла если есть сверка CRC ?
Сверка файла по размеру не обязательно, просто если есть более быстрое и точное решение тогда можно crc32 или md5.
Вся проблема именно в том что проверяет много файлов долго если есть большие.
|
|
|

30.05.2021, 01:08
|
|
Новичок
Регистрация: 08.11.2007
Сообщений: 1
С нами:
9741040
Репутация:
0
|
|
конечно CRC, его на все ваши запросы с головой. Все остальное это мусор.
|
|
|

30.05.2021, 01:09
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Сообщение от Deazer
конечно CRC, его на все ваши запросы с головой. Все остальное это мусор.
Но подделать crc32 возможно у файла в теории?
|
|
|

30.05.2021, 01:10
|
|
Новичок
Регистрация: 08.11.2007
Сообщений: 1
С нами:
9741040
Репутация:
0
|
|
Сообщение от Maksim
Но подделать crc32 возможно у файла в теории?
Конечно, как и любой другой метод на процессе загрузке пропатчить место где ты вызываешь сверку. Это вопрос 10-15 минут.
|
|
|

30.05.2021, 01:11
|
|
Познавший АНТИЧАТ
Регистрация: 31.01.2017
Сообщений: 1,604
С нами:
4885523
Репутация:
1085
|
|
Сообщение от Deazer
Конечно, как и любой другой метод на процессе загрузке пропатчить место где ты вызываешь сверку. Это вопрос 10-15 минут.
Какие тогда варианты от подмены файлов?
|
|
|

30.05.2021, 01:14
|
|
Новичок
Регистрация: 08.11.2007
Сообщений: 1
С нами:
9741040
Репутация:
0
|
|
Сообщение от Maksim
Какие тогда варианты от подмены файлов?
Накрывать ВМками файл и вшивать прямо в не очевидный файл. Допустим использовать VMProtect или Themida и так далее. Но если станет вопрос и заплатят деньги что бы это отключить, ну примерно 40-80 USD цена вопроса и по времени день или пол.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|