ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Как улучшить сверку больших файлов? (https://forum.antichat.xyz/showthread.php?t=780724)

Maksim 29.05.2021 23:31

Занимался проверкой файлов и возник вопрос как бы сделать это быстрее?

Код:


[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

òbiòbi верифицированный пользователь. 30.05.2021 00:24

Только размер файлов? Может лучше md5/crc32 сверять? Не быстро, но будет надежнее

Maksim 30.05.2021 00:27

Цитата:

Сообщение от òbi

Только размер файлов? Может лучше md5/crc32 сверять? Не быстро, но будет надежнее

Просто есть идея сделать так чтобы сверялись все файлы по списку из System папки lineage, потом Maps.

Но то что выше работает очень долго по такому алгоритму.

Возможно есть вариант проще с проверкой не только по размеру, но и по crc или md5 и быстрее чем сейчас?

Deazer 30.05.2021 01:04

А зачем простите сверять размер файла если есть сверка CRC ?

Если у исходного файла отличается хоть 1 байт, контрольная сумма измениться, не говоря о размере.

Maksim 30.05.2021 01:07

Цитата:

Сообщение от Deazer

А зачем простите сверять размер файла если есть сверка CRC ?

Сверка файла по размеру не обязательно, просто если есть более быстрое и точное решение тогда можно crc32 или md5.

Вся проблема именно в том что проверяет много файлов долго если есть большие.

Deazer 30.05.2021 01:08

конечно CRC, его на все ваши запросы с головой. Все остальное это мусор.

Maksim 30.05.2021 01:09

Цитата:

Сообщение от Deazer

конечно CRC, его на все ваши запросы с головой. Все остальное это мусор.

Но подделать crc32 возможно у файла в теории?

Deazer 30.05.2021 01:10

Цитата:

Сообщение от Maksim

Но подделать crc32 возможно у файла в теории?

Конечно, как и любой другой метод на процессе загрузке пропатчить место где ты вызываешь сверку. Это вопрос 10-15 минут.

Maksim 30.05.2021 01:11

Цитата:

Сообщение от Deazer

Конечно, как и любой другой метод на процессе загрузке пропатчить место где ты вызываешь сверку. Это вопрос 10-15 минут.

Какие тогда варианты от подмены файлов?

Deazer 30.05.2021 01:14

Цитата:

Сообщение от Maksim

Какие тогда варианты от подмены файлов?

Накрывать ВМками файл и вшивать прямо в не очевидный файл. Допустим использовать VMProtect или Themida и так далее. Но если станет вопрос и заплатят деньги что бы это отключить, ну примерно 40-80 USD цена вопроса и по времени день или пол.


Время: 15:43