Образ мышления: Assembler
То, что не удается запрограммировать на Ассемблере, приходится паять
Образ мышления: Assembler - RSS-канал
Образ мышления: Assembler - Карта сайта
Эффект водной поверхности на Ассемблере
10.10.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter
Эффект водной поверхности на Ассемблере
Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как работают другие люди. К горящему огню мы вернемся как-нибудь в другой раз, а сегодня я предлагаю полюбоваться на эффект водной поверхности, реализованный на чистом Ассемблере. Я неоднократно встречал этот эффект в патчах и кейгенах разных крякерских команд и считаю его одним из лучших визуальных эффектов. Одно время даже была мысль рипнуть его из готовых exe-файлов, но потом мне попался оригинал исходника на MASM. Недолго думая, я портировал его на FASM и с огромным удовольствием буду использовать в своих релизах.
Читать статью целиком »
Просмотров: 8652 | Комментариев: 19
Как сделать снимок с web-камеры на Ассемблере
28.08.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter
Как сделать снимок с web-камеры на Ассемблере
Начитался страшных историй про людей, которые опасаются, что через web-камеру их компьютера за ними следят спецслужбы и злые хакеры. Поэтому камеры заклеиваются черной изолентой, паранойя прогрессирует и все такое. Мне стало интересно, как сделать снимок с web-камеры без ведома пользователя?
Самый простой способ - воспользоваться стандартной библиотекой avicap32.dll, которая входит в состав системы еще с Windows 2000. Она предназначена для работы с такими медиа-устройствами как цифровые видеокамеры, web-камеры, видеокарты и т.д. через удобный механизм управления посредством сообщений. Как написано в MSDN, эта библиотека предоставляет достаточно большой набор инструментов для работы с web-камерами, но нас интересует только захват изображения, и желательно без создания видимых окон или чего-то подобного.
Читать статью целиком »
Просмотров: 10924 | Комментариев: 28
Расчет 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
Подсветка ошибок FASM в консоли Sublime Text
13.07.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter
Подсветка ошибок FASM в консоли Sublime Text
В одной из статей, посвященной Sublime Text мне задали вопрос по поводу можно ли сделать подсветку ошибок в консоли Sublime Text при запуске или сборке (Build) файла. В официальной документации мне не удалось найти ничего, касающегося настройки вывода консоли компиляции, но по данным из неофициальной документации оказалось, что все можно сделать. А если поковыряться в потрошках редактора, то можно найти и еще кое-что интересное.
Читать статью целиком »
Просмотров: 9417 | Комментариев: 6
Как подключить компилятор FASM к Sublime Text
23.06.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter
Как подключить компилятор FASM к Sublime Text
После прикручивания синтаксиса Assembler к редактору Sublime Text 3, возникла необходимость добавить к нему и поддержку компилятора Flat Assembler (FASM). Задача немного осложнилась тем, что требовалось сделать два варианта компиляции: просто сборка исполняемого файла и сборка с последующим запуском. В результате получился небольшой плагин (package), с помощью которого компилятор Flat Assembler подключается к Sublime Text. Для установки распакуйте архив с плагином в папку редактора \Data\Packages с сохранением структуры каталогов. Горячие клавиши: Ctrl+B - компиляция, Ctrl+Shift+B - компиляция с последующим запуском (только для exe-файлов). В папке \Flat Assembler\FASM находится модифицированный компилятор Flat Assembler и все файлы из папки \INCLUDE официального дистрибутива. Вы можете обновлять эти файлы самостоятельно по мере необходимости. Также в файле \Default (Windows).sublime-keymap можно заменить кнопки запуска и компиляции на более привычные комбинации F9 и Ctrl+F9, как это сделано в FASM IDE.
Если используете расширение Package Control, то добавьте в него ссылку на мой репозиторий и устанавливайте расширение Flat Assembler через него. В этом случае все следующие обновления компилятора будут устанавливаться автоматически. Репозиторий:
https://www.manhunter.ru/autoupdate/packages.json
В репозитории всегда находится актуальная версия компилятора, тогда как здесь плагин может обновляться с некоторой задержкой.
Читать статью целиком »
Просмотров: 14367 | Комментариев: 23