Форум программистов, компьютерный форум CyberForum.ru

Чтение и подсчет контрольной суммы для .exe файлов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
puhur01
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 33
02.12.2012, 16:25     Чтение и подсчет контрольной суммы для .exe файлов #1
Добрый день.
У меня есть функция для подсчета контрольной суммы CRC32.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unsigned long Crc32(unsigned char *buf, unsigned long len){
    unsigned long crc_table[256];
    unsigned long crc;
    for (int i = 0; i < 256; i++){
        crc = i;
        for (int j = 0; j < 8; j++)
        crc = crc & 1 ? (crc >> 1) ^ 0xEDB88320UL : crc >> 1;
        crc_table[i] = crc;
    }
    crc = 0xFFFFFFFFUL;
    while (len--)
        crc = crc_table[(crc ^ *buf++) & 0xFF] ^ (crc >> 8);
    
    return crc ^ 0xFFFFFFFFUL; //конец функции
}
Я читаю 2 .exe файла следующим образом (каждый по отдельности):
C++
1
2
3
4
5
6
7
8
9
10
11
ifstream in2 ("1.exe", ios::binary);
std::string buffer2;
while (in2.peek()!=EOF){
   std::string in_s;
   getline (in2, in_s);
   buffer2+=in_s;
}
in2.close();
strcpy(buf2, buffer2.c_str());
len2 = strlen(buf2);
unsigned char *ubuf2 = (unsigned char *)buf2;
Затем считаю суммы этих файлов, они одинаковые. Для файлов с другими расширениями (.txt, .jpg) все работает хорошо. Косяк только с .exe.
В чем может быть ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 16:25     Чтение и подсчет контрольной суммы для .exe файлов
Посмотрите здесь:

C++ Вычисление контрольной суммы
C++ как осущиствить чтение файла,и подсчет строк
Алгоритм подсчета контрольной суммы C++
C++ Подсчет суммы чисел
C++ Форматирование файла целых чисел, полученных с помощью датчика случайных чисел, нахождение контрольной суммы
Чтение текстовых файлов для новичков (getline) C++
Алгоритм вычисления контрольной суммы с наименьшей вероятностью дубля C++
Циклы, подсчет суммы C++

Искать еще темы с ответами

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

Текущее время: 03:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru