Blog. Just Blog

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

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

Подсветка ошибок FASM в консоли Sublime Text

13.07.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter

Подсветка ошибок FASM в консоли Sublime Text

В одной из статей, посвященной Sublime Text мне задали вопрос по поводу можно ли сделать подсветку ошибок в консоли Sublime Text при запуске или сборке (Build) файла. В официальной документации мне не удалось найти ничего, касающегося настройки вывода консоли компиляции, но по данным из неофициальной документации оказалось, что все можно сделать. А если поковыряться в потрошках редактора, то можно найти и еще кое-что интересное.

Читать статью целиком »
Просмотров: 5176 | Комментариев: 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 через него. В этом случае все следующие обновления компилятора будут устанавливаться автоматически. Репозиторий:

http://www.manhunter.ru/autoupdate/packages.json
В репозитории всегда находится актуальная версия компилятора, тогда как здесь плагин может обновляться с некоторой задержкой.

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

Полезные функции для работы с датами на Ассемблере

05.06.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter

Полезные функции для работы с датами на Ассемблере

Из разных источников насобирал различные полезные функции для работы с датами на Ассемблере. Преимущества их в том, что они работают очень быстро, хорошо оптимизированы и позволяют обходиться вообще без вызова системных функций. Все функции самодостаточные и не требуют для работы каких-либо дополнительных данных.

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

Многострочные комментарии в FASM

15.10.2013 | Категория: Образ мышления: Assembler | Автор: ManHunter

Многострочные комментарии в FASM

Во время создания и тестирования программ на FASM часто случается так, что надо закомментировать большие отрезки кода. В оригинальном FASM допустимо только комментирование единичных строк программы. Такой комментарий начинается со знака ; (точка с запятой) и заканчивается с последним знаком данной строки. Во многих языках высокого уровня комментарии могут охватывать сразу несколько строк кода (например в языке C/C++, где закомментированный фрагмент находится между символами /* и */). Впервые для FASM реализацию таких комментариев сделал Николай Гайдук, но, к сожалению, первый и последний патч был изготовлен Николаем для версий FASM 1.67.*, а на на официальном форуме FASM идея также не нашла понимания со стороны автора. Я тоже однажды писал Tomasz Grysztar, чтобы он добавил многострочные комментарии в официальную версию, но ответа так и не получил. Поэтому для личного использования я внес соответствующие изменения в исходники последней версии FASM 1.71.13, может быть кому-нибудь из любителей этого языка такой вариант комментариев тоже понравится. Я же, в свою очередь, буду вносить изменения в следующие версии и выкладывать их здесь же.

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

"FASM и UPX: созданы друг для друга"

25.03.2011 | Категория: Образ мышления: Assembler | Автор: ManHunter
Сразу скажу, утро и кофе к этой статье отношения не имеют, все необычные решения приходят ко мне обычно по ночам. Однажды я экспериментировал с FASM, и обнаружил один интересный момент. Ниже приведен ассемблерный листинг самой простейшей программы, она выводит на экран сообщение и сразу же завершает работу, вроде бы ничего необычного.
  1. section '.code' code readable executable
  2.  
  3.   start:
  4.         ; Вывести окно сообщения и выйти из программы
  5.         invoke  MessageBox, NULL, szMess, szTitle, MB_OK
  6.         invoke  ExitProcess,0
  7.  
  8.         ; Куча пустого места, чтобы можно было упаковать файл
  9.         rd      1000h
  10.  
  11. szTitle db      'Title',0
  12. szMess  db      'Hello, UPX ;)',0
  13.  
  14. ;---------------------------------------------
  15.  
  16. section '.idata' import data readable writeable
  17.  
  18. ; Обратите внмание, user32.dll прописан дважды
  19. library kernel32,'kernel32.dll',\
  20.         user32,'user32.dll',\
  21.         user32,'user32.dll'
  22.  
  23. include 'apia\kernel32.inc'
  24. include 'apia\user32.inc'
Но обратите внимание, что в секции импорта user32.dll прописан дважды. Это и есть та самая фишка, которую я случайно обнаружил. Блок нулевых байт в середине нужен, чтобы файл получился большой и его можно было упаковать. В реальных приложениях, скорее всего, такие избыточные данные не понадобятся.

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

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