
Быстрый поиск
Введите фрагмент названия статьи для поиска
Алгоритм хеширования MaHash8 на Ассемблере
28.09.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter

Алгоритм хеширования MaHash8 на Ассемблере
MaHash8 - эффективная функция с высокой производительностью, которая позволяет выполнять операции хеширования с минимальным количеством коллизий. Она основана на простых операциях, имеет очень понятную структуру и легко реализуется на различных языках программирования.
Читать статью целиком »
Просмотров: 680 | Комментариев: 3
Использование системных функций хеширования
07.05.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Использование системных функций хеширования
Я уже выкладывал на сайте ассемблерные реализации алгоритмов хеширования MD4, MD5 и SHA1. Но в Windows есть уже готовые функции для подсчета не только этих хешей, но и некоторых других. Конечно, делать все самому гораздо приятнее для души и полезнее для мозгов, но почему бы не переложить часть работы на систему? Как говорил один мой хороший товарищ: "У лошади голова большая, вот пусть она и думает".
Читать статью целиком »
Просмотров: 1157 | Комментариев: 5
Исследование защиты программы HashTab Shell Extension
07.08.2018 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы HashTab Shell Extension
HashTab Shell Extension - расширение стандартного Проводника Windows, которое позволяет подсчитывать контрольные суммы и хэши файлов прямо на вкладке свойств. Собственно, никаких ограничений по функционалу в программе нет, вся разница между бесплатной и платной версией заключается только в надоедливой надписи, что программа не лицензирована для коммерческого использования. Так что это будет не совсем исследование защиты, а так, косметическая операция. В конце концов, нельзя же все ломать, надо на чем-то и сидеть :)
Читать статью целиком »
Просмотров: 3659 | Комментариев: 6
Расчет Fletcher's Checksum на Ассемблере
15.02.2017 | Категория: Образ мышления: Assembler | Автор: ManHunter

Расчет Fletcher's Checksum на Ассемблере
Алгоритм Fletcher's Checksum был назван в честь его автора - Джона Флетчера (John Fletcher), который разрабатывал проекты для систем дальней связи, тяжелой промышленности, спутниковой навигации и даже NASA. Ему потребовался максимально быстрый и компактный алгоритм для контроля целостности передаваемых данных.
Читать статью целиком »
Просмотров: 2763 | Комментариев: 0
Расчет MurmurHash на Ассемблере
29.01.2017 | Категория: Образ мышления: Assembler | Автор: ManHunter
MurmurHash - семейство простых и быстрых хеш-функций. Необычное название произошло от двух базовых операций - умножение (MUltiply) и циклический битовый сдвиг (Rotate), которые используются в основном цикле хеширования. К достоинствам алгоритма Murmur можно отнести простоту реализации, хорошее распределение, мощный лавинный эффект, высокую скорость работы и сравнительно высокую устойчивость к коллизиям. Первая версия, разработанная Остином Апплеби (Austin Appleby), самая простая в реализации:Code (Assembler) : Убрать нумерацию
- ;-----------------------------------------------------------------------
- ; Функция вычисления хеша Murmur
- ; Автор: ManHunter / PCL
- ; http://www.manhunter.ru
- ;-----------------------------------------------------------------------
- ; Параметры:
- ; lpData - указатель на строку
- ; dSize - длина строки
- ; dSeed - соль
- ; На выходе:
- ; EAX = полученный хеш
- ;-----------------------------------------------------------------------
- proc Murmur lpData:DWORD, dSize:DWORD, dSeed:DWORD
- push ebx ecx edx esi edi
- MAGIC = 0xC6A4A793
- mov ebx,[dSize]
- imul ecx,ebx,MAGIC
- mov edx,[dSeed]
- xor ecx,edx
- mov esi,[lpData]
- .loc_loop:
- cmp ebx,4
- jb .loop_done
- mov eax,dword [esi]
- add ecx,eax
- imul ecx,MAGIC
- mov eax,ecx
- shr eax,16
- xor ecx,eax
- add esi,4
- sub ebx,4
- jmp .loc_loop
- .loop_done:
- cmp ebx,3
- je .loc_tail_3
- cmp ebx,2
- je .loc_tail_2
- cmp ebx,1
- je .loc_tail_1
- jmp .loc_finish
- .loc_tail_3:
- movzx eax,byte[esi+2]
- shl eax,16
- add ecx,eax
- .loc_tail_2:
- movzx eax,byte[esi+1]
- shl eax,8
- add ecx,eax
- .loc_tail_1:
- movzx eax,byte[esi]
- add ecx,eax
- imul ecx,MAGIC
- mov eax,ecx
- shr eax,16
- xor ecx,eax
- .loc_finish:
- imul ecx,MAGIC
- mov eax,ecx
- shr eax,10
- xor ecx,eax
- imul ecx,MAGIC
- mov eax,ecx
- shr eax,17
- xor eax,ecx
- pop edi esi edx ecx ebx
- ret
- endp
Читать статью целиком »
Просмотров: 3444 | Комментариев: 12


