Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ тип переменных http://www.cyberforum.ru/cpp-beginners/thread716393.html
объясните тип переменных struct list (Динамическая структура данных «список») pointer (Указатель на список) list0 (Указатель на голову списка) n (Элемент для вставки произвольного типа TE) f...
C++ Не могу дописать программу. Двумерный массив Дана целочисленная прямоугольная матрица. Определить количество строк, содержащих хотя бы один нулевой элемент, и номер столбца, в котором находится самая длинная серия одинаковых элементов.... http://www.cyberforum.ru/cpp-beginners/thread716389.html
C++ Написать на С++ функцию, переставляющую в обратном порядке элементы в односвязном списке
Здравствуйте, помогите пожалуйста Написать на С++ функцию, переставляющую в обратном порядке элементы в односвязном списке
Обход шахматной доски конем C++
Добрый вечер , форумчане. Передо мной стоит проблема написать программу на С++ (задача о ходе конем -довольно распространенная , конь должен обойти всю доску не наступив на 1 клетку 2 раза. ).Нужен...
C++ Полет по параболе http://www.cyberforum.ru/cpp-beginners/thread716378.html
Доброго всем времени суток! Столкнулся с проблемой одной. У меня было задание к лабе, в котором нужно было сделать стрелу, которая летит по параболе и вращается вокруг продольной оси. Все это в...
C++ Подсчет частоты вхождений отдельных букв за время Т Приветствую тебя, человек/инопланетянин, зашедший в эту тему! У меня есть вопрос именно к тебе, так что не закрывай вкладку. У меня есть вот такое задание: Разработать программу,... подробнее

Показать сообщение отдельно
puhur01
1 / 1 / 0
Регистрация: 28.06.2012
Сообщений: 33

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

02.12.2012, 16:25. Просмотров 1350. Ответов 0
Метки (Все метки)

Добрый день.
У меня есть функция для подсчета контрольной суммы 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.
В чем может быть ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.