Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Расчет CRC16 на Ассемблере

30.11.2010 | Категория: Образ мышления: Assembler | Автор: ManHunter
CRC (Cyclic Redundancy Code - циклический избыточный код) - алгоритм расчета контрольной суммы для передаваемого сообщения, основанный на полиномиальной арифметике. Основная идея алгоритма CRC состоит в представлении сообщения в виде огромного двоичного числа, делении его на другое фиксированное двоичное число и использовании остатка от этого деления в качестве контрольной суммы. Получив сообщение, приемник должен выполнить аналогичное действие и сравнить полученный результат с принятой контрольной суммой. Сообщение считается достоверным, выполняется это равенство. Классический алгоритм CRC16 часто используется в архиваторах для контроля целостности данных служебных заголовков архивов, также его удобно использовать для сравнения строки с каким-либо значением, когда по соображениям безопасности сравниваемое значение не хранится в открытом виде. Для контроля целостности файлов функцию CRC16 лучше не использовать, так как из-за небольшой длины ее научились подделывать. Чтобы выполнить расчет CRC16 требуется сперва подготовить так называемую таблицу инициализации. В сегменте данных таблица резервируется как 256 слов, по одному word на каждый возможный байт:
  1. ; Сегмент данных
  2. section '.data' data readable writeable
  3.  
  4. ; Таблица инициализации для расчета CRC16
  5. crc16table rw 256
В классическом варианте для расчета CRC16 используется полином 0a001h, на его основе таблица слов заполняется значениями. Для этого используется следующая вспомогательная функция:
  1. ;-----------------------------------------------------------------------
  2. ; Функция создания таблицы инициализации для расчета CRC16
  3. ;-----------------------------------------------------------------------
  4. proc init_CRC16
  5.         push    eax ebx ecx edi
  6.  
  7.         ; Указатель на выделенную под таблицу память
  8.         mov     edi,crc16table
  9.         ; Расчитать значения для всех 256 слов
  10.         xor     edx,edx
  11. CRC16_Polynom:
  12.         mov     eax,edx
  13.         mov     ecx,8
  14. CRC16_NL:
  15.         shr     ax,1
  16.         jae     CRC16_NoXOR
  17.         ; Magic Number!
  18.         xor     ax,0a001h
  19. CRC16_NoXOR:
  20.         loop    CRC16_NL
  21.         ; Записать значение в таблицу полиномов
  22.         stosw
  23.         inc     edx            ; Счетчик +1
  24.         cmp     edx,256        ; Всю таблицу сгенерировали?
  25.         jne     CRC16_Polynom  ; Нет, работаем дальше
  26.  
  27.         ; Восстановить измененные регистры
  28.         pop     edi ecx ebx eax
  29.         ret
  30. endp
Таблица инициализации получается всегда одинаковой (при условии неизменности полинома), так что ее можно даже не раcчитывать, а хранить в виде массива констант. Если требуется таблица инициализации CRC16 отдельно для использования в других проектах или языках программирования, то она приведена ниже. Для некоторых других разновидностей алгоритма CRC16, например, CRC-CCITT или CRC16-IBM, полином будет другим, и, соответственно, таблица также будет другой.

Читать статью целиком »
Просмотров: 11814 | Комментариев: 2

Готовим котлеты по-стожарски

26.11.2010 | Категория: А еще я туда ем! | Автор: ManHunter

Котлеты по-стожарски

По заявкам трудящихся осваиваем новые рецепты. Не знаю, насколько наш вариант блюда соответствует ресторанному варианту, но мы с женой очень старались. На вкус получилось тоже хорошо.

Читать статью целиком »
Просмотров: 5499 | Комментариев: 8

Stop! 1.0

24.11.2010 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Stop!

Программа Stop! предназначена для подавления окна завершения работы системы. По функционалу аналогична вызову команды "shutdown.exe -a", но более удобна в применении. Естественно, что никак не поможет при убитом процессе lsass.exe и прочих критических сбоях, но зато пригодится при лечении всякой вирусни, отладке программ и в другие моменты, когда отведенной на раздумья минуты явно недостаточно. В архиве есть программа test.exe для проверки работоспособности. Для особо запущенных случаев, когда окно завершения выскакивает постоянно, прилагается вариант программы traystop.exe, которая после запуска сворачивается в трей. Для подавления окна завершения работы достаточно кликнуть левой кнопкой мыши на иконке программы в трее. Правая кнопка - меню.

Читать статью целиком »
Просмотров: 6065 | Комментариев: 14

Исследование защиты программы PDF Password Cracker

22.11.2010 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы PDF Password Cracker

Программа PDF Password Cracker предназначена для подбора и удаления паролей из PDF-файлов. Поддерживается стандартное 40-битное шифрование, улучшенное 128-битное шифрование и шифрование по алгоритму AES. Подбор пароля выполняется по заданному диапазону символов, по словарю или прямым поиском ключа. Кроме пароля позволяет удалять из PDF-файлов ограничения на печать и копирование, различные приватные данные, такие как мета-данные, формы, скрипты, вложенные файлы, цифровые подписи и т.п. В общем реально нужная и полезная программа. Есть несколько вариантов дистрибутивов, в зависимости от количества наворотов растет и цена, доходя на версии Enterprise аж до 60 баксов. Бесплатных версий нет, по крайней мере пока.

Читать статью целиком »
Просмотров: 5984 | Комментариев: 3

Мультимедийный плеер iconBIT HMP705HDMI

21.11.2010 | Категория: Обзоры техники | Автор: ManHunter

Мультимедийный плеер iconBIT HMP705HDMI

Нет предела совершенству, но, похоже, что я смог его достичь. Моя вялотекущая эпопея с поиском лучшего портативного видеоплеера закончилась на новинке сезона - мультимедийном плеере iconBIT HMP705HDMI. Сперва была мысль купить модель HMP505HDMI, но я почитал отзывы о нем и решил подождать. Ожидание себя оправдало с лихвой, и теперь я счастливый обладатель портативного медиаплеера с поддержкой Full HD-видео и 7-дюймовым экраном. Как обычно, я воздержусь от унылых технических описаний, их вы можете почитать на официальных источниках, я же буду рассказывать только свои впечатления.

Читать статью целиком »
Просмотров: 12783 | Комментариев: 16

01 ... 376 377 378 379 380 381 382 ... 445
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2026
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.11 сек. / MySQL: 2 (0.0368 сек.) / Память: 4.5 Mb
Наверх