Blog. Just Blog

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

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

Проверка стойкости пароля с помощью подсчета энтропии

18.12.2015 | Категория: Web-мастеру и не только | Автор: ManHunter

Проверка стойкости пароля с помощью подсчета энтропии

Каждому пользователю интернета приходилось регистрироваться на каких-нибудь сайтах или сервисах, и одна из обязательных составляющих любой регистрации - придумывание пароля. Есть даже официальные рекомендации по составлению паролей, не говоря уже о многочисленных статьях на эту тему. Многие сервисы при регистрации пользователя проверяют наличие определенных групп символов в пароле, в результате складывается ситуация, как в верхней половине приведенного здесь комикса. А вот как определить, действительно ли тот или иной пароль является сложным?

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

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

05.01.2015 | Категория: Образ мышления: Assembler | Автор: ManHunter
CRC24 - еще одна разновидность контрольной суммы. Как можно увидеть из названия, ее размер составляет 24 бита, или 3 байта. Я пока не нашел практического применения этому хешу, так же как и программ, использующих его. Но раз есть алгоритм, то почему бы его не реализовать на Ассемблере? Начнем с наиболее компактной реализации без использования таблицы.
  1. ;-----------------------------------------------------------------------
  2. ; Функция вычисления хеша CRC24
  3. ; by ManHunter / PCL
  4. ; http://www.manhunter.ru
  5. ;-----------------------------------------------------------------------
  6. ; Параметры:
  7. ;       lpData - указатель на строку
  8. ;       dSize  - длина строки
  9. ; На выходе:
  10. ;       EAX = полученный хеш
  11. ;-----------------------------------------------------------------------
  12. proc    CRC24 lpData:DWORD, dSize:DWORD
  13.         push    ebx ecx edx esi
  14.  
  15.         CRC24_POLYNOM = 1864CFBh
  16.  
  17.         ; Инициализация
  18.         mov     eax,0B704CEh
  19.  
  20.         ; Длина строки
  21.         cmp     [dSize],0
  22.         je      .loc_ret
  23.  
  24.         ; Указатель на начало строки
  25.         xor     ecx,ecx
  26. @@:
  27.         ; Получить символ из строки
  28.         mov     ebx,[lpData]
  29.  
  30.         movzx   edx,byte [ebx+ecx]
  31.         shl     edx,16
  32.         xor     eax,edx
  33.  
  34.         xor     esi,esi
  35. .loc_cycle:
  36.         shl     eax,1
  37.         test    eax,1000000h
  38.         jz      .loc_next
  39.         xor     eax,CRC24_POLYNOM
  40.         jmp     .loc_next
  41. .loc_next:
  42.         inc     esi
  43.         cmp     esi,8
  44.         jb      .loc_cycle
  45.  
  46.         ; Следующий символ
  47.         inc     ecx
  48.         cmp     ecx,[dSize]
  49.         jb      @b
  50.  
  51. .loc_ret:
  52.         and     eax,0FFFFFFh
  53.  
  54.         pop     esi edx ecx ebx
  55.         ret
  56. endp
По скорости работы этот алгоритм мало чем отличается от безтабличных реализаций CRC32 или CRC16, а для хранения результатов все равно надо будет использовать переменную размера DWORD. Так что каких-то особых преимуществ перед этими хешами у CRC24 нет.

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

Исследование защиты программы Advanced FTP Password Recovery

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

Скриншот программы Advanced FTP Password Recovery

Программа Advanced FTP Password Recovery предназначена для восстановления забытых паролей от FTP, которые сохранены в настройках различных FTP-клиентов. Уникальность и универсальность Advanced FTP Password Recovery заключается в том, что вам не требуется расшифровывать какие-то файлы, брутить пароли или что-то еще. Если пароль сохранен в FTP-клиенте, то вам достаточно просто послать запрос на соединение, а Advanced FTP Password Recovery перехватит и покажет ваш пароль. Для перехвата надо сперва немного подготовиться: изменить в настройках FTP-клиента адрес нужного сервера на localhost или завернуть его через файл hosts на ip-адрес 127.0.0.1, если отредактировать его нельзя. Advanced FTP Password Recovery при запуске биндит свой перехватчик на порт 21 (FTP) локального хоста и ждет от FTP-клиента запроса на авторизацию. Очень простое и элегантное решение. Лично я считаю, что подобный инструмент в обязательном порядке должен быть на дежурной флешке, но, во-первых, программа не портативная, а во-вторых, бесплатно показывает только количество символов в пароле, сам пароль отображается только после регистрации.

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

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

30.07.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter
Алгоритм подсчета CRC64, как и остальных контрольных сумм, предназначен для проверки целостности данных при их передаче или хранении. Также контрольные суммы могут использоваться для быстрого сравнения двух наборов данных на неэквивалентность: с большой вероятностью различные наборы данных будут иметь неравные контрольные суммы. Длина в 64 бита позволяет сократить число возможных коллизий, а использование предварительно посчитанной таблицы делает скорость вычисления достаточно большой.

В этой статье я покажу два варианта алгоритма подсчета CRC64. Они отличаются используемыми полиномами и, соответственно, полученными на их основе таблицами. Сами алгоритмы отличаются ненамного. Первый вариант - прямой или нормальный, принятый как стандарт ISO 3309. Он используется в различных программах, например, в базе данных PostgreSQL. Здесь за основу берется полином 0x42F0E1EBA9EA3693.
  1. ;-----------------------------------------------------------------------
  2. ; Функция вычисления CRC64 - Прямой табличный алгоритм (PostgreSQL)
  3. ;-----------------------------------------------------------------------
  4. ; Параметры:
  5. ;   lData  - указатель на участок памяти для расчета CRC64
  6. ;   dLen   - размер участка в байтах
  7. ; На выходе:
  8. ;   EAX:EDX = CRC64 участка памяти
  9. ;-----------------------------------------------------------------------
  10. proc calc_CRC64 lData:dword, dLen:dword
  11.         ; Сохранить регистры
  12.         push    edi esi ebx ecx
  13.  
  14.         ; Указатель на данные для подсчета CRC64
  15.         mov     esi,[lData]
  16.         ; Размер участка данных
  17.         mov     ecx,[dLen]
  18.  
  19.         xor     eax,eax
  20.  
  21.         ; Начальное значение CRC64 = -1
  22.         mov     ebx,0FFFFFFFFh
  23.         mov     edx,ebx
  24. @@:
  25.         ; Следующий символ данных
  26.         lodsb
  27.  
  28.         ; Вычислить смещение QWORD в таблице
  29.         mov     edi,edx
  30.         shr     edi,24
  31.         xor     eax,edi
  32.  
  33.         ; Вычислить значение CRC64
  34.         shld    edx,ebx,8
  35.         shl     ebx,8
  36.         xor     ebx,dword [crc64table+eax*8]
  37.         xor     edx,dword [crc64table+eax*8+4]
  38.  
  39.         loop    @b
  40.  
  41.         xchg    eax,ebx
  42.  
  43.         ; Финализация CRC64
  44.         not     eax
  45.         not     edx
  46.  
  47.         ; Восстановить регистры
  48.         pop     ecx ebx esi edi
  49.  
  50.         ret
  51. endp
Эта функция подразумевает, что подсчет контрольной суммы выполняется сразу для всей строки данных, без промежуточных накопительных подсчетов. Если требуется выполнять подсчет для нескольких блоков, например, периодически поступающие потоковые данные или очень большие объемы информации, то алгоритм придется немного модифицировать. Для этого начальное значение CRC64 при втором и последующем расчете инициализируется промежуточным значением с предыдущего подсчета, а финализация выполняется только после вычисления CRC64 последнего блока данных.

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

Как Windows определяет, что файл был загружен из Интернета

12.04.2014 | Категория: Software | Автор: ManHunter
Часто при попытке запустить файлы, скачанные из интернета, появляется примерно такое окно:


Как Windows определяет, что файл был загружен из Интернета

Такую "черную метку" файлу обычно ставит браузер Internet Explorer. При этом файл можно переименовать, скопировать или даже переместить на другой диск, предупреждение все равно будет оставаться. Снять блокировку с файла можно примерно так. Но каким образом система определяет, что файл скачан из интернета? Эта информация записывается в так называемые альтернативные потоки NTFS. Суть технологии альтернативных потоков заключается в том, что у файла на дисковой системе NTFS одновременно может быть несколько потоков, содержащих данные. Проводник Windows и большинство файловых менеджеров могут работать только с главным потоком, который представляет собой основное содержимое файла.

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

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2023
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.12 сек. / MySQL: 3 (0.0532 сек.) / Память: 5 Mb
Наверх