Образ мышления: Assembler
То, что не удается запрограммировать на Ассемблере, приходится паять
Образ мышления: Assembler - RSS-канал
Образ мышления: Assembler - Карта сайта
Расчет 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
Читать статью целиком »
Просмотров: 2797 | Комментариев: 12
Перехват и блокировка завершения работы Windows
11.01.2017 | Категория: Образ мышления: Assembler | Автор: ManHunter
Перехват и блокировка завершения работы Windows
В статье про отключение перезагрузки при установке обновлений, я упомянул программу ShutdownGuard, которая не дает перезагружаться компьютеру. Мне стало очень интересно, каким образом можно из своего приложения перехватить и заблокировать перезагрузку или выключение компьютера, а также каким образом система завершает работу. Результаты исследований вы можете прочитать в этой статье.
Читать статью целиком »
Просмотров: 5047 | Комментариев: 3
Отладка приложений с помощью Process Monitor
17.12.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter
Отладка приложений с помощью Process Monitor
Если вы разработчик программного обеспечения под Windows, вам наверняка знакома утилита Process Monitor от Марка Руссиновича. С ее помощью можно легко отследить, к каким файлам или ключам реестра обращается приложение, просмотреть параметры ввода и вывода, работу с процессами и многое другое. Но мало кто знает, что Process Monitor можно также использовать в качестве отладочного инструмента, который позволяет разработчикам создавать события вывода отладчика и добавлять их в поток событий. Например, можно выводить текстовые сообщения прямо в трассировку при вызове и завершении функций, чтобы сопоставить их с другими перехватываемыми событиями.
Читать статью целиком »
Просмотров: 3921 | Комментариев: 2
Как узнать дату установки Windows
05.12.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter
Как узнать дату установки Windows
Сегодня я расскажу, как можно узнать дату установки Windows. Я не могу оценить степень полезности этой информации, скорее всего, она находится где-то на уровне спортивного интереса. Ну или если вы задумались, например, не пора ли переустановить систему. В качестве инструмента для решения этой задачи будет использоваться Ассемблер.
Читать статью целиком »
Просмотров: 3258 | Комментариев: 32
Генератор случайных чисел с использованием RANDOM.ORG
25.10.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter
Генератор случайных чисел с использованием RANDOM.ORG
Тема генераторов случайных чисел является одной из основных в криптографии. Использование любых программных генераторов случайных чисел имеет один главный недостаток: последовательность чисел может называться случайной только если между символами, нету зависимости. А любой алгоритм так или иначе подразумевает зависимость от вычислений. Истинно случайные числа получаются только от аппаратных генераторов. Одним из таких генераторов является сайт RANDOM.ORG. По заявлению его владельцев, источником для случайных чисел является атмосферный шум. Не берусь утверждать, так это или нет, но этот сайт пользуется заслуженной популярностью среди разработчиков всего мира.
Читать статью целиком »
Просмотров: 3676 | Комментариев: 11