Assembler. . . Блог программистов


Блог программистов






200910 Апр

Сложение, вычитание и умножение на Flat Assembler

Код:

format PE GUI 4.0
entry start ;Точка входа в программу
INCLUDE ‘INCLUDE\win32ax.inc’
INCLUDE ‘INCLUDE\encoding\win1251.inc’
INCLUDE ‘INCLUDE\api\user32.inc’

section ‘.data’ data readable writable

formats db «%d»,0
result db 256 dup(?) ;Когда будем преобразовавать число строку, сюда сохраним результат

section ‘.code’ code readable executable

start:
;Алгоритм сложения чисел 1 и 2
mov eax,1 ;Перемещаем в eax число 1
mov edx,2 ;Перемещаем в edx число 2
add eax,edx ;Складываем содержимое eax и edx (1+2). Выводим результат в eax.
invoke wsprintf,result,formats,eax ;Преобразуем число(результат) в строку для того чтобы можно было вывести его на экран.
invoke MessageBox,0,result,»Plus»,MB_OK ;Выводим результат на экран.

;Алгоритм вычитания 4 из 10
mov eax,10 ;Перемещаем в eax число 10
mov edx,4 ;Перемещаем в edx число 4
sub eax,edx ;Вычитаем из содержимого eax edx (10-4). Выводим результат в eax.
invoke wsprintf,result,formats,eax ;Преобразуем число(результат) в строку для того чтобы можно было вывести его на экран.
invoke MessageBox,0,result,»Minus»,MB_OK ;Выводим результат на экран.

;Алгоритм умножения 2 на 6
mov ax,2 ;Перемещаем в ax число 2
imul ax,6 ;Умножаем содержимое ax на 6 (2*6). Результат будет находиться в eax.
invoke wsprintf,result,formats,eax ;Преобразуем число(результат) в строку для того чтобы можно было вывести его на экран.
invoke MessageBox,0,result,»Umnojenie»,MB_OK ;Выводим результат на экран.

invoke ExitProcess,0 ;Выход из программы

section ‘.idata’ import data readable

library kernel32,’KERNEL32.DLL’,user32,’USER32.DLL’
INCLUDE ‘INCLUDE\api\kernel32.inc’

200930 Мар

Хуки в Windows. Часть вторая. Работа с окнами

Здравствуй, уважаемый читатель. В первой статье про хуки речь шла об основах механизмов хуков и о клавиатурных хуках. Во второй статье про хуки в Windows я расскажу про слежение событий создания, активации, уничтожения окон. Также много внимания будет уделено методам межпроцессорного взаимодействия с использованием разделяемой памяти (мэпинга) и синхронизации потоков с использованием мьютексов. Также будет написана программа на Delphi для осуществления мониторинга окон.
(more…)

200923 Мар

Общие принципы авторизации на удаленных сайтах

Итак, у нас стоит задача при работе своей программы авторизоваться на неком удаленном сайте. Для простейшего примера я взял портал mail.ru
Зарегистрировал там пользователя programmers с паролем 1234
Итак, сначала немного теории: Авторизация на любом сайте происходит путем заполнения формы и отправки её данных некому удаленному крипту методом POST. На самом деле после того как вы заполнили формы и нажали на кнопку, данные отправятся в виде простой строки, содержащей все параметры и их значения разделенные разделителем.
Все формы на страницах описываются тегом <form> имеющим достаточное кол-во параметров, приведу самые нужные для нас:
(more…)

200919 Мар

Близкие контакты третьего вида с Visual Foxpro (или как написать свой провайдер для FoxPro)

Многие наверное как и я в свое время задавались интересным вопросом — «А вот как бы задействовать всю силу применяемой в моем проекте СУБД? Не только стандартные SQL запросы, а и скрытые возможности.» Тогда ведь можно будет получать результат найэффективнешими методам.

Верно.

Не так уж и сложно разработать свой провайдер, по крайней мере  для FoxPro, думаю что эта СУБД еще имеет широкое применение.

А вот как — описано в статье.

(more…)

200929 Янв

Запись дисков в Delphi

Доброго времени суток уважаемые любители Delphi. В этой статье я расскажу про запись CD\DVD дисков в среде Delphi. Общие принципы, изложенные в этой статье подойдут не только для языка Delphi, но и для языка С++. Для прочтения этой статьи с максимальной пользой, читателю рекомендуется получить базовые понятия об OLE\COM, впрочем даже незнание этих понятий вряд ли помешает понимаю этой статьи, так как классы и компоненты Delphi (так же как и классы С++), которые мы будет использовать полностью скрывают от нас все тонкости и неудобства использования COM интерфейсов для записи дисков.
(more…)

200920 Янв

Перехват API функций. Основы

Здравствуй читатель. Сегодня я расскажу довольно таки эффективную методику перехвата API функций. Не следует думать, что если мы хотим перехватить API функции, то мы пишем либо троян, вирус и ещё какую-нибудь заразу, с помощью перехвата API функций осуществляются многие защитные механизмы, перехват API функций это довольно-таки нужная и полезная вещь. Для прочтения данной статьи с максимальной пользой обязательны, нужны, как минимум, начальные знания низкоуровневого программирования и хотя бы какие-нибудь знания архитектуры работы Windows. Итак, начнём.

(more…)

200914 Янв

Хуки в Windows. Часть первая. Основы

Здравствуй читатель. Этой статьёй я начинаю цикл статей про механизм ловушек оконных сообщений, а на жаргоне программистов механизм хуков, в операционных системах Windows. Тема про хуки является популярной на многих форумах программистов. Материал этих статей рассчитан на начинающего пользователя, примеры будут на Delphi. В этой статье будут изложены основные принципы механизма хуков, и будет написан пример клавиатурного шпиона.
(more…)

200912 Янв

Блокируем Ctrl-Alt-Del

Доброго времени суток. На многих форумах программистов очень часто встречается вопрос «Как заблокировать комбинацию клавиш Ctrl-Alt-Del?». В этой статье я расскажу, как можно реально заблокировать комбинацию клавиш Ctrl-Alt-Del без каких-либо извращений с заменой файлов и прочего. Статья не рассчитана на новичков, читатель этой статьи как минимум должен знать, что такое инжект и запуск удалённых потоков.
(more…)

200814 Ноя

Работа с дробными числами на ассемблере

В данной статье я расскажу про работу с дробными числами на ассемблере. Работу с дробными числами, вернее с числами с плавающей запятой, обеспечивает математический сопроцессор, т.е. FPU. В этой статье будет в кратце рассказано про его архитектуру, будут изложены основы работы с FPU его основные команды, а также два примера работы с FPU на FASM.
(more…)

200830 Авг

Простой текстовый редактор

Копирование статьи без копирайта запрещено!
www.prowares.ru © by Simply-Art

Каждый год у студентов возникает такая задача – сделать текстовый редактор. Я сделал редактор с минимум функций. Но главные функции этого редактора – работающие (что я не нашел в Интернете) процедуры поиска и замены.
Итак приступим к началу. Создаем новый проект, и кидаем на форму следующие компоненты:
MainMenu1, Memo1 (Standard)
OpenDialog1, SaveDialog1, FindDialog1, ReplaceDialog1 (Dialogs)
Кликним два раза по MainMenu1 которая лежит на форме. Создаем меню:
1. Файл
1.1. Открыть
1.2. Сохранить
1.3. Выход
2. Правка
2.1. Отмена
2.2. Вырезать
2.3. Копировать
2.4. Вставить
2.5. Удалить
2.6. Найти …
2.7. Найти далее
2.8. Замена
2.9. Выделить всё
Теперь перейдем непосредственно к коду. Выделяем компонент FindDialog1 и в Events щелкаем на OnFind. Там пишем следующий код: (more…)

← Предыдущая страницаСледующая страница →
Page 3 of 8«12345»...Last »

Облако меток

AdSense клиент компонент api ClientSocket библиотеки dll ServerSocket приложение INTERFACE шифровка байт char работа пароль учеба programmer процессор Application HANDLE Cursor C++ AssignFile хуки win api Project Internet google FASM memo исходники html функция язык System поиск GetLastError алгоритм программист programmersclub сервер форум exe сайт файл проект Assembler шифрование windows delphi