Blog. Just Blog

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

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

Таймер в консольном приложении

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

Таймер в консольном приложении

Продолжаем раскрывать возможности консоли. Сегодня это будет выполнение действий через определенные интервалы, то есть, проще говоря, таймеры. В некоторых интернетах всплывает информация, что, мол, таймеры в консольных приложениях не поддерживаются или для этого надо городить какие-то жуткие конструкции типа отдельных потоков с проверкой времени. На самом деле консоль прекрасно работает с функцией SetTimer, только надо ее, как говорится, правильно готовить.

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

Обработка событий в консоли

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

Обработка событий в консоли

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

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

Использование TEB для антиотладки

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

Использование TEB для антиотладки

Структура TEB (Thread Environment Block), как и PEB (Process Environment Block), при грамотном использовании позволяет получить огромное количество полезной информации. Сегодня расскажу еще об одном малоизвестном антиотладочном трюке. Он основан на том, что при нормальном запуске приложения в поле StaticUnicodeBuffer структуры TEB не содержится ничего, а при запуске под отладчиком там обязательно оказывается название той или иной динамической библиотеки, используемой приложением.

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

Удобная компиляция DLL в FASM

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

Удобная компиляция DLL в FASM

Поделюсь маленьким лайфхаком, как можно удобно компилировать DLL в FASM. Предположим, что в вашем проекте должен быть исполняемый файл и динамическая библиотека. Вроде бы ничего сложного, принципиальная разница в заголовках исходников:
  1. ; Файл будет скомпилирован в DLL
  2. format PE GUI 4.0 DLL
  1. ; Файл будет скомпилирован в EXE
  2. format PE GUI 4.0
А как быть, если нужно, чтобы в проекте были одновременно program.exe и program.dll? Держать два исходника с одинаковым именем невозможно (всякие экзотические случаи окружения не рассматриваем); переименовывать каждый раз после сборки что-то-там.dll в program.dll лениво; собирать файлы из разных папок неудобно; если поменять расширение со стандартного ".asm" на кастомное, то слетит ассоциация и иконка файла в Проводнике; оставлять разные имена можно, но не выполняется начальное условие задачи. Я понимаю, что весь смысл Ассемблера заключается в непрерывном преодолении и подобные мелочи настоящего джедая не остановят. Но если есть возможность хоть немного облегчить работу программиста, то почему бы этого не сделать.

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

Распаковка данных с помощью LZ-функций

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

Распаковка данных с помощью LZ-функций

В статьях о распаковке, опубликованным на этом сайте, мы рассмотрели уже несколько системных способов компрессии и декомпрессии данных. Сегодня разберем еще один. Это функции, появившиеся еще в ранних версиях Windows и использовавшиеся, в основном, в инсталляторах. Речь идет о LZ-функциях, в которых применяется алгоритм Lempel-Ziv, он же LZ77.

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

01 ... 06 07 08 09 10 11 12 ... 63
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2023
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.12 сек. / MySQL: 3 (0.0564 сек.) / Память: 4.75 Mb
Наверх