Быстрый поиск
Введите фрагмент названия статьи для поиска
Исследование защиты программы MD5 CrackFAST
06.08.2015 | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы MD5 CrackFAST
Программа MD5 CrackFAST предназначена для взлома хэшей MD5. Взлом выполняется прямым перебором, без использования таблиц, поэтому для больших строк о положительном результате можно сразу забыть. Но и без этого в незарегистрированной версии программы есть принудительное ограничение - восстанавливаются строки не более 3 символов длиной.
Читать статью целиком »
Просмотров: 5824 | Комментариев: 7
Расчет CRC24 на Ассемблере
05.01.2015 | Категория: Образ мышления: Assembler | Автор: ManHunter
CRC24 - еще одна разновидность контрольной суммы. Как можно увидеть из названия, ее размер составляет 24 бита, или 3 байта. Я пока не нашел практического применения этому хешу, так же как и программ, использующих его. Но раз есть алгоритм, то почему бы его не реализовать на Ассемблере? Начнем с наиболее компактной реализации без использования таблицы.Code (Assembler) : Убрать нумерацию
- ;-----------------------------------------------------------------------
- ; Функция вычисления хеша CRC24
- ; by ManHunter / PCL
- ; http://www.manhunter.ru
- ;-----------------------------------------------------------------------
- ; Параметры:
- ; lpData - указатель на строку
- ; dSize - длина строки
- ; На выходе:
- ; EAX = полученный хеш
- ;-----------------------------------------------------------------------
- proc CRC24 lpData:DWORD, dSize:DWORD
- push ebx ecx edx esi
- CRC24_POLYNOM = 1864CFBh
- ; Инициализация
- mov eax,0B704CEh
- ; Длина строки
- cmp [dSize],0
- je .loc_ret
- ; Указатель на начало строки
- xor ecx,ecx
- @@:
- ; Получить символ из строки
- mov ebx,[lpData]
- movzx edx,byte [ebx+ecx]
- shl edx,16
- xor eax,edx
- xor esi,esi
- .loc_cycle:
- shl eax,1
- test eax,1000000h
- jz .loc_next
- xor eax,CRC24_POLYNOM
- jmp .loc_next
- .loc_next:
- inc esi
- cmp esi,8
- jb .loc_cycle
- ; Следующий символ
- inc ecx
- cmp ecx,[dSize]
- jb @b
- .loc_ret:
- and eax,0FFFFFFh
- pop esi edx ecx ebx
- ret
- endp
Читать статью целиком »
Просмотров: 5617 | Комментариев: 6
Расчет CRC64 на Ассемблере
30.07.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter
Алгоритм подсчета CRC64, как и остальных контрольных сумм, предназначен для проверки целостности данных при их передаче или хранении. Также контрольные суммы могут использоваться для быстрого сравнения двух наборов данных на неэквивалентность: с большой вероятностью различные наборы данных будут иметь неравные контрольные суммы. Длина в 64 бита позволяет сократить число возможных коллизий, а использование предварительно посчитанной таблицы делает скорость вычисления достаточно большой.В этой статье я покажу два варианта алгоритма подсчета CRC64. Они отличаются используемыми полиномами и, соответственно, полученными на их основе таблицами. Сами алгоритмы отличаются ненамного. Первый вариант - прямой или нормальный, принятый как стандарт ISO 3309. Он используется в различных программах, например, в базе данных PostgreSQL. Здесь за основу берется полином 0x42F0E1EBA9EA3693.
Code (Assembler) : Убрать нумерацию
- ;-----------------------------------------------------------------------
- ; Функция вычисления CRC64 - Прямой табличный алгоритм (PostgreSQL)
- ;-----------------------------------------------------------------------
- ; Параметры:
- ; lData - указатель на участок памяти для расчета CRC64
- ; dLen - размер участка в байтах
- ; На выходе:
- ; EAX:EDX = CRC64 участка памяти
- ;-----------------------------------------------------------------------
- proc calc_CRC64 lData:dword, dLen:dword
- ; Сохранить регистры
- push edi esi ebx ecx
- ; Указатель на данные для подсчета CRC64
- mov esi,[lData]
- ; Размер участка данных
- mov ecx,[dLen]
- xor eax,eax
- ; Начальное значение CRC64 = -1
- mov ebx,0FFFFFFFFh
- mov edx,ebx
- @@:
- ; Следующий символ данных
- lodsb
- ; Вычислить смещение QWORD в таблице
- mov edi,edx
- shr edi,24
- xor eax,edi
- ; Вычислить значение CRC64
- shld edx,ebx,8
- shl ebx,8
- xor ebx,dword [crc64table+eax*8]
- xor edx,dword [crc64table+eax*8+4]
- loop @b
- xchg eax,ebx
- ; Финализация CRC64
- not eax
- not edx
- ; Восстановить регистры
- pop ecx ebx esi edi
- ret
- endp
Читать статью целиком »
Просмотров: 7323 | Комментариев: 4
Исследование защиты программы MD5 Tool
29.03.2014 | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы MD5 Tool
Программа MD5 Tool предназначена для подсчета и проверки контрольной суммы MD5 файлов. Есть множество бесплатных и гораздо более мощных аналогов, поэтому мне очень странно, что за эту софтину аффтар пытается подрезать с пользователей по червонцу баксов. "И его посчитаем".
Читать статью целиком »
Просмотров: 5773 | Комментариев: 5
Расчет хеша MD4 на Ассемблере
17.04.2012 | Категория: Образ мышления: Assembler | Автор: ManHunter
MD4 (Message Digest 4) - хеш-функция, разработанная профессором Рональдом Ривестом в 1990 году. Для произвольных входных данных функция MD4 генерирует 128-разрядный хеш. Функция MD4 является предшественником MD5 и до настоящего времени применяется в некоторых сетевых технологиях Windows. В реализации обоих алгоритмов очень много общего, поэтому точно так же в сегменте данных надо подготовить следующие массивы и переменные:Code (Assembler) : Убрать нумерацию
- ; Сегмент данных
- section '.data' data readable writeable
- ...
- ; Шаблоны функции wsprintf для перевода хеша в строковый вид,
- ; при необходимости можно оставить только какой-нибудь один
- szMD4Format1 db '%.8X%.8X%.8X%.8X',0 ; Для получения заглавных букв
- szMD4Format2 db '%.8x%.8x%.8x%.8x',0 ; Для маленьких букв в строке хеша
- stMD4Result:
- stdtA dd ? ; Переменные для получения и хранения
- stdtB dd ? ; результата хеширования
- stdtC dd ?
- stdtD dd ?
- stMD4Hash rb 33 ; Буфер для строки хеша в формате ASCIIZ
Читать статью целиком »
Просмотров: 4227 | Комментариев: 2