Visual Studio Code ― популярный редактор кода, бесплатный, с открытым исходным кодом. Устанавливаем Visual Studio CodeСкачайте последнюю версию Visual Studio Code с официального сайта. Рекомендуется загрузить системный установщик (System Installer), но если у вас нет прав администратора, то пользовательский установщик (User Installer) тоже подойдет. Выполните все обычные шаги по установке. Не доверяете установщику? Скачайте и распакуйте zip-файл. Настраиваем внешний вид редактораОткрываем asm-файл (Файл → Открыть... Ctrl+O) Первое, что мы сделаем ― установим русский язык. Нажимаем «View → Extensions» (Ctrl+Shift+X), набираем «russian language» Жмем на «install» Жмем на «Restart» «Вид → Расширения» (Ctrl+Shift+X) набираем «masm», выбираем и устанавливаем masm-code (подсветка синтаксиса) и masm runner (запуск компилятора, линкера, готового приложения) «Command Palete» (Ctrl+Shift+P) набираем «Change Language Mode» Выбираем «asm» Ищем в папке C:\Users\...\.vcode\extensions каталог istareatscreens.masm-runner-0.4.5, удаляем его и заменяем на содержимое запакованное в файле istareatscreens.zip. В каталоге istareatscreens.masm-runner-0.4.5\out ищем файл extension.js, в нем строку const getPath = getPathBuilder("d:\\masm39"); и меняем d:\\masm39 на положение masm64 на вашем компьютере.Работа в VSCodeОткрываем asm-файл (Файл → Открыть... Ctrl+O) Нажимаем Ctrl+Shift+P набираем Masm runner: Compile and run code → запускается компилятор, линкер и будет создано GUI/ CONSOLE/ DLL-приложение, в соответствии с содержимым первой закомментированной строки в asm-файле. Если в текущей папке есть rc-файл с тем же именем, что и у asm-файла → запустится компилятор ресурсов и к EXE/DLL-файлу будут прилинкованы ресурсы.
Как запустить x64dbg с командной строки не в полноэкранном, а в оконном режиме? Запускается в том режиме, в котором он был в последний раз открыт. (Перепробовал все ключи при запуске - не работает, в оф. документации тоже ничего не нашел.) Как с командной строки "x64dbg test.exe" перейти на начало test.exe в памяти? Аналог нажатия на F9 x64dbg -> Параметры -> Параметры -> События -> В Прерываться на: убрать системную точку останова и вызове TLS, тогда сразу при запуске бряк будет на EntryPoint
К сожалению всё время x64dbg открывается в полноэкранном режиме Совет оставить галочку только у EntryPoint сработал
Прокачиваем VS Code до IDE Visual Studio Code — это прежде всего редактор, и он включает в себя функции, необходимые для высокопродуктивного редактирования исходного кода. Но, с помощью таких высокоуровневых средств как: расширения, интеграция с системами контроля версий, настройка среда разработки, поддержка отладки и др. — его можно превратить в настоящий IDE для любого языка программирования, в том числе MASM. IntelliSense IntelliSense — это комплекс функций редактирования кода, включающий авто дополнение кода, информацию о директивах и параметрах функций, краткую справку. Эти возможности IntelliSense могут также называться иными терминами, например, "авто завершение кода", "помощь в работе с содержимым" или "подсказки кода". К сожалению, VS Code не поддерживает язык программирования MASM с коробки, но мы можем это исправить, добавив для этого расширение. Расширения Расширения можно разделить на две группы: 1. Декларативная группа расширений Это такие расширения, которые определяются в конфигурационных файлах, они позволяют добавить: Подсветка синтаксиса Завершение фрагмента кода (сниппеты) Сворачивание фрагментов кода (фолдинг) Авто закрытие скобок 2. Программная группа расширений Данные расширения включают: авто завершение, проверку ошибок, форматирование, рефактор и др. Эти возможности часто обеспечиваются сервером языка - программой, которая анализирует ваш проект для обеспечения динамических возможностей. Для начала остановимся на декларативных расширениях и добавим возможности, которые они предоставляют. «Вид → Расширения» (Ctrl+Shift+X) вводим «masm» и скачиваем расширение «MASM» от blindtiger. Далее мы будем лишь расширять функционал данного расширения, чтобы не писать все с нуля. Подсветка синтаксиса Расширение добавляет подсветку синтаксиса для констант, директив и инструкций. Полный список ключевых слов, которые распознаются расширением можно посмотреть по пути C:\Users\...\.vcode\extensions\blindtiger.masm-0.0.5\syntaxes в файле masm.tmLanguage.json. Там же, можно добавить свои ключевые слова, дополнив соответствующее регулярное выражение. Завершение фрагментов кода (сниппеты) При программировании на языке ассемблера, в связи с краткостью мнемоник и директив, по моему мнению, сниппеты редко могут пригодиться. Но для тех, кто использует «высокоуровневые» директивы (.IF .WHILE .FOR и др.) эта возможность весьма полезна. Настроить список сниппетов (изменить, добавить, удалить) можно по пути C:\Users\...\.vcode\extensions\blindtiger.masm-0.0.5\snippets В данной директории содержатся 3 файла: 1. flow.json – содержит определение сниппетов для директив контроля выполнения. Поле prefix – это сам сниппет, при вводе которого, он развернется в то, что написано в поле body. Тут же есть небольшое описание и поле scope – оно определяет, в файлах с каким расширением данный сниппет будет работать. 2. macro.json – определяет сниппеты для макроопределений. 3. segment.json – определяет сниппеты для сегментов. Данное разделение по файлам – лишь семантика. В какой файл из этих добавлять новые сниппеты – дело ваше. Обратите внимание на поле scope, не забудьте указать расширения файлов, в которых будут применяться сниппеты. Сворачивание фрагментов кода (фолдинг) По умолчанию, в VS code сворачивание стоит для уровней табуляции. Добавим также распознавание процедур и структур, даже если они находятся на одном уровне: в уже знакомой нам директории blindtiger.masm-0.0.5 открываем файл language-configuration.json и добавляем в конце поле “folding”: Включив туда два регулярных выражения: Start: "^\\S*\\s+(proc|struc)(\\s|$)+(\\s|\\S)*" End: "^\\S*\\s+(endp|ends)(\\s|$)+(\\s|\\S)*" Авто закрытие скобок уже настроено разработчиком расширения в этом же файле, в полях surroundingPairs, autoClosingPairs, brackets.