Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Assembler > .:[ ПОЛЕЗНЫЕ ССЫЛКИ, КНИГИ, ИНСТРУМЕНТЫ ]:.


Автор: Jin X 24.09.18, 10:27

Подборка литературы по низкоуровневому программированию
(книги, статьи, техническая документация)


user posted image


Обучение программированию на ассемблере


Архитектура и инструкции процессоров Intel, AMD, ARM


Справочники по API-функциям, прерываниям, системным вызовам

  • Microsoft Developer Network (MSDN) [преимущественно english] (библиотека официальной технической документации для разработчиков под Windows: большой справочник по функциям WinAPI, интерфейсам, структурам данных, примеры кода и пр).

  • Ralf Brown's Interrupt List (RBIL) [архив] (большой справочник по прерываниям DOS, портам ввода-вывода и т.п. // html-версия // ещё одна html-версия) [english]
  • DOS – справочник по прерываниям (и не только), краткий, зато на русском
  • Набор справочников под DOS:
    • СкачатьTechHelp60.rar (, : 651) – справочник по прерываниям, системным структурам данных (базовый набор материалов, уступающий RBIL) [english]
    • СкачатьIntrList102.rar (, : 636) – альтернативный справочник по прерываниям [english]
    • СкачатьASML.rar (, : 845) – справочник по ассемблеру 8086 с описанием инструкций [на русском]

  • Linux System Call Table (справочник по системным вызовам Linux'а для x86, x86_64, ARM и ARM64) [english]
  • Architecture calling conventions (справочник по системным вызовам Linux'а для разных платформ, включая x86 и ARM, 32/64 бита) [english]
  • Linux Syscall Reference (ещё один справочник по системным вызовам 32-битного Linux'а) [english]
  • Документация по системным вызовам Linux [на русском]

Системное программирование, устройство операционных систем, BIOS


Программирование железа, драйверы


Оптимизация кода


Отладка, дизассемблирование, безопасность, RE


Программирование микроконтроллеров


Разное


Telegram-каналы и чаты


Мои проекты:
Подборки:

Друзья, давайте пополнять этот список вместе! :good:
Присылайте ссылки на полезную литературу или названия книг с указанием авторов в специальную тему.
Только давайте собирать не всё подряд, а самое лучшее :)

Автор: Jin X 24.09.18, 10:31

Инструменты для низкоуровневого программирования

user posted image


Компиляторы и компоновщики

  • MASM32 (Macro Assembler) – наверное, самый популярный пакет самого популярного ассемблера от Стива Хатчессона aka Hutch (содержит в себе также PoAsm), рекомендую сразу скачать ml.exe 8.0 и заменить им входящий в пакет ml.exe 6.14
    • MASM64 by Hutch – набор файлов для 64-битной версии MASM (необходимо запустить makeall.bat, а потом обратить особое внимание на файл include64\masm64rt.inc); файлы ml64.exe, link.exe и прочие потроха можно взять из Visual Studio (путь к папке с нужными файлами примерно такой: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.12.25827\bin\Hostx64\x64\)
    • MASM64 includes and libs – заголовки и библиотеки для 64-битного MASM'а от Василия Сотникова (тут главный файл – include64\temphls.inc, который включён в набор Hutch'а и называется macros64\vasily.inc, так что скачивать оба пакета смысла нет; однако информацию с сайта Василия почитать стоит)
    • Disassemble Help Library – Библиотека того же автора (Василия Сотникова) для дизассемблирования
    • Calculation Engine – Библиотека для работы с длинными числами (снова от Василия Сотникова)
  • fasm (flat assembler) – современный и удобный компилятор под DOS, Wndows, Linux с очень развитой системой макросов и полным набором инструкций Intel/AMD
  • NASM (Netwide Assembler) – ещё один современный кроссплатформенный компилятор с хорошей макросистемой и полным набором инструкций Intel/AMD, популярен в зарубежных проектах и при программировании под Linux/BSD
    • NASMX – пакет макросов, include'ов, примеров и утилит для NASM под Windows, Linux, BSD, Xbox; включает макрос invoke, символы для работы с OpenGL и пр.
    • Yasm (Yet another assembler...) – попытка переписать NASM, однако последняя версия датируется 2014 годом и, на мой взгляд, не имеет преимуществ перед NASM
  • UASM (он же HJWasm) – современный MASM-совместимый мультиплатформенный ассемблер с полным набором инструкций Intel/AMD
  • TASM 5.x (Turbo Assembler) – старый, но всё ещё популярный ассемблер, в основном используется для создания программ под DOS
  • GoAsm – ассемблер для написания программ под Windows (Вики)
  • Asmc Macro Assembler (с исходниками) – переделанный JWasm с довольно приличной библиотекой различных функций

  • fasmg (flat assembler g) – универсальный ассемблер под любую платформу (имеются include-модули для создания кода под AVR, i8051, x86/x64, генерации байт-кода JVM, аналогично можно создать свои модули; информация)
  • FASMARM – ассемблер под архитектуру ARM
  • ARM Keil MDK (Microcontroller Development Kit) – средство разработки и отладки для контроллеров ARM (ещё ссылка; дополнительные паки; документация [english])
  • GNU Arm Toolchain – тулчейн для компиляции ARM-приложений под Windows [i686], Linux [x86-64 и AArch64], macOS [x86-64] (ещё одна ссылка)

  • ALINK, GoLink – компоновщики для программ под DOS и Windows
  • objconv – преобразователь форматов объектных файлов (COFF/OMF/ELF/Mach-O)
  • Crinkler – популярный среди демомейкеров компоновщик-упаковщик

  • Godbolt: Compiler Explorer – популярный онлайн-компилятор разных языков с дизассемблером
  • Online Assembler and Disassembler – поддерживает x86, ARM, Mips, PowerPC, Sparc
  • Online x86 / x64 Assembler and Disassembler
  • Quick C++ Benchmark – бенчмарк и профайлер кода C++ (Clang/GCC)

Работа с ресурсами

  • ResEd – бесплатный редактор ресурсов
  • Resource Builder – редактор + компилятор ресурсов (shareware)
  • GoRC – компилятор ресурсов (rc → res) [в вышеупомянутом NASMX есть и GoLink, и objconv, и GoRC]

Наборы разработчика


Среды разработки (IDE) для ассемблера

  • Fresh IDE – визуальная среда разработки для fasm
  • SASM (SimpleASM) – простая кроссплатформенная среда разработки для NASM, MASM, GAS, fasm с подсветкой синтаксиса и отладчиком (для NASM имеется набор макросов для упрощения работы с консолью)
  • ASM Visual – IDE для MASM, fasm, TASM со встроенным отладчиком и поддержкой WinDbg, OllyDbg, TD, x64dbg (имеется возможность установить весь пакет инструментов при установки IDE)
  • GUI Turbo Assembler – среда разработки со встроенным компилятором TASM, отладчиком и эмулятором DOSBox
  • Easy Code – IDE с поддержкой множества различных ассемблеров (Asmc, fasm, GoAsm, JWasm, MASM, PoAsm, UASM), встроенным отладчиком, редактором ресурсов и диалоговых окон
  • Rad ASM – стал частью FbEdit FreeBASIC code editor, ищите в папках RadASM* по указанной ссылке (Вики)
  • JaeEditor (fasm) – последнее обновление в 2015 году
  • GSS Visual Assembler – TASM, MASM32 и др. Последнее обновление в 2014 году!
  • FASM Editor – последнее обновление в 2011 году

Отладчики, дизассемблеры

  • OllyDbg – популярный 32-битный отладчик (готовится 64-битная версия, но пока ещё не вышла)
  • x64dbg – хороший отладчик для 32- и 64-битного кода
  • IDA Pro – мощный интерактивный дизассемблер (shareware)
  • Ghidra – инструмент для реверс-инжиниринга от NSA (агентства национальной безопасности США), поддерживающий разные типы процессоров (официальный сайт – требует VPN/Proxy; Wiki; статья на Habr "GHIDRA vs. IDA Pro")
  • radare2 (r2) – свободный кроссплатформенный фреймворк для реверс-инжиниринга, написанный на Си, который включает дизассемблер, шестнадцатеричный редактор, анализатор кода и т.д. Используется при реверсе, отладке вредоносного ПО и прошивок (Вики; GUI Cutter).

  • Turbo Debugger – популярный отладчик под DOS
  • AFD Pro – ещё один отладчик под DOS
  • debug – реализация от легендарного Japheth, входящая в состав FreeDOS. Являясь полным клоном MS debug, имеет возможность выполнять отладку protect-mode DPMI-приложений. Больше ссылок, в т.ч. на репозиторий github, см. здесь
  • ldebug – новая реализация MS debug от другого разработчика, и хотя она не входит в состав FreeDOS, но программа доступна в репозитории, а также на сайте разработчика (документация; ещё ссылки)

Эмуляторы, виртуализаторы

  • DOSBox – очень популярный эмулятор компьютера для запуска программ под DOS (имеет встроенный замедлитель скорости)
    • [URL=https://Dosify me]Dosify me[/URL]! – DOSBox онлайн
    • TweetX86 – ещё один DOSBox онлайн
  • emu8086 – простенький эмулятор процессора 8086 и некоторых функций MS-DOS со встроенным ассемблером и средой, включая отладчик
  • Bochs – эмулятор компьютера IBM PC
  • QEMU – эмулятор аппаратного обеспечения различных платформ (QEMU Manager)
  • Intel Software Development Emulator (SDE) – эмулятор расширений (инструкций) процессоров Intel
  • MS-DOS Player – удобно использовать при сборке проекта с помощью компиляторов DOS и Windows, а также при запуске консольных DOS-программ (графические режимы не поддерживаются)

  • VMware Workstation Player (бесплатный для персонального использования), VMware Workstation Pro (shareware) – мощные виртуализаторы, позволяющие создавать и запускать виртуальные машины
  • Oracle VirtualBox – альтернативный бесплатный виртуализатор
  • Sandboxie – песочница для запуска программ в изолированной среде (shareware)

  • Симуляторы ARM и других процессоров – хорошие симуляторы, однако имеются заморочки с написанием скриптов.

Редакторы PE и двоичных файлов

  • PE Explorer – редактор секций, ресурсов PE, дизассемблер (shareware)
  • Resourse Hacker – редактор ресурсов исполняемых файлов под Windows
  • Hiew – редактор двоичных файлов со встроенным дизассемблером, просмотром и редактированием заголовков исполняемых файлов (shareware)
  • HexIt – бесплатная альтернатива Hiew, но не такая красивая и довольно старая (2001 года)
  • WinHex – Hex-редактор, позволяющий редактировать не только файлы, но и диски (по секторам) и память, не имеет дизассемблера (shareware)
  • ImHex – бесплатный и активно развивающийся hex-редактор с дизассемблером (разных типов процессоров) и множеством интересных функций (github)

Упаковщики и протекторы

  • UPX (Ultimate Packer for eXecutables) – популярный бесплатный упаковщик EXE-файлов и DLL-библиотек
  • PECompact – ещё один упаковщик (shareware)
  • ASPack, ASProtect – упаковщик и протектор EXE-файлов
  • Themida – мощное средство защиты программ (shareware, статья на Хабре)
  • Enigma Virtual Box – бесплатный виртуализатор файлов, объединяющий исполняемый файл вместе с сопутствующими (dll, ocx, графическими и звуковыми файлами) в один (на этом сайте также имеется shareware-протектор Enigma Protector)

Профилировщики, анализаторы кода


Системные утилиты

  • Windows Sysinternals – набор системных утилит для Windows (работа с процессами, мониторы и прочее)
  • Rufus – утилита для создания загрузочных USB
  • WinSpy – утилита для получения информации об открытых окнах и управления ими

Операционные системы


Прочее

  • Far Manager – менеджер файлов в стиле Norton Commander с подсветкой кода в редакторе
  • AsmTidy – форматтер ассемблерных исходников в Intel-синтаксисе (бьютифайлер) на Perl


Считаете, что здесь нет чего-то важного? Нашли ошибку? Пишите в специальную тему (варез не размещаю) ;)

Автор: Jin X 24.09.18, 10:34

Дополнительные материалы на форуме


 

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)