- •Системное программирование на макроассемблере masm32
- •«Системное программирование» (часть 1)
- •Вступление
- •1Организация среды исполнения для масм
- •1.1Цель работы
- •1.2 Теоретические сведения
- •If errorlevel 0 команда2
- •If errorlevel 0 goto метка
- •1.3Выполнение работы
- •1.4Состав отчета по работе
- •1.5Контрольные вопросы
- •2.2.2Состав пакета масм
- •2.2.3Центр масм – редактор Quick Editor
- •2.3Выполнение работы
- •2.4Состав отчета по работе
- •2.5Контрольные вопросы
- •3Высокоуровневый интерфейс языка масм
- •3.1Цель работы
- •3.2 Теоретические сведения
- •3.2.1Процедуры и макросы в ассемблере
- •3.2.2Синтаксис высокого уровня масм
- •3.2.3Макрос invoke
- •3.3Выполнение работы
- •4.2.2Потоки вывода и ввода
- •4.2.3Вывод и ввод в консольных приложениях
- •4.3Выполнение работы
- •4.4Состав отчета по работе
- •4.5Контрольные вопросы
- •5Ввод и вывод в ассемблерных приложениях с графическим интерфейсом
- •5.1Цель работы
- •5.2Теоретические сведения
- •5.3Выполнение работы
- •6.3.1Фрейм кода (области 1-5)
- •6.3.2Фрейм дампа памяти (области 9,10 и 11)
- •6.3.3Фрейм регистров процессора (области 6, 7 и 8)
- •6.3.4Фрейм стека (области 12, 13 и 14)
- •6.4Выполнение работы
- •6.5Состав отчета по работе
- •6.6Контрольные вопросы
- •Приложение а Префиксы «венгерской» нотации типов данных WinApi
- •Рекомендованная литература
6.5Состав отчета по работе
Название и номер работы, фамилия и группа студента.
Цель работы.
Протокол выполнения работы с текстами ответов на все вопросы в заданиях пункта «Выполнение работы».
Ответы на контрольные вопросы.
Личная подпись автора отчета.
6.6Контрольные вопросы
Каково назначение программ класса «отладчики»? Какие практические задачи они призваны решать?
Что такое «реверсный инджиниринг» в информационных технологиях?
Почему называют отладчиком «кольца 3». Имеет ли это отношение к сериалу «Властелин колец»?
Как сделать так, чтобы OllyDbg в своих фреймах показывал белые буквы на черном фоне?
Какие программы, альтернативные OllyDbg, обсуждаются в Интернете? Приведите пару-тройку примеров и выскажите свое мнение об их применимости.
7
Приложение а Префиксы «венгерской» нотации типов данных WinApi
В данном лабораторном курсе мы встречаемся со многими идентификаторами, написанными в так называемой «венгерской» нотации, поэтому надо понимать ее смысл. Для этого и приводится данное приложение.
«Венгерская» нотация в программировании — соглашение об именовании переменных, констант и прочих идентификаторов в коде программ. Своё название венгерская нотация получила благодаря программисту компании Microsoft венгерского происхождения Чарльзу Симони (венг. Károly Simonyi), предложившему её ещё во времена разработки первых версий MS-DOS. Эта система стала внутренним стандартом Майкрософт.
Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, (отражающими, как правило, тип переменной) состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) они могут быть своими.
Таблица А.1 - Префиксы, задающие тип
Префикс |
Сокращение от |
Смысл |
Пример |
s |
string |
строка |
sClientName |
sz |
zero-terminated string |
строка, ограниченная нулевым символом |
szClientName |
n, i |
int |
целочисленная переменная |
nSize, iSize |
l |
long |
длинное целое |
lAmount |
b |
boolean |
булева переменная |
bIsEmpty |
a |
array |
массив |
aDimensions |
t, dt |
time, datetime |
время, дата и время |
tDel, dtShipm |
p |
pointer |
указатель |
pBox |
lp |
long pointer |
двойной (дальний) указатель |
lpBox |
r |
reference |
ссылка |
rBoxes |
h |
handle |
дескриптор |
hWindow |
m_ |
member |
переменная-член |
m_sAddress |
g_ |
global |
глобальная переменная |
g_nSpeed |
C |
class |
класс |
CString |
T |
type |
тип |
TObject |
I |
interface |
интерфейс |
IDispatch |
v |
void |
отсутствие типа |
vReserved |