Win32asm обучение


    d8ef8794     

Raw size это размер секции,


Raw size это размер секции, выравненный согласно установкам в PE-заголовке. PE-загрузчик проверяет это значение, чтобы знать, сколько байт он должен загрузить в память.

Virtual size это размер, занимаемый в памяти.
Флаги определяют характеристики (только чтение/запись/исполняемый и т.д.).
6.2 Пример программы

Имеется пример программы:
.data

Number1 dd 12033h

Number2 dw 100h,200h,300h,400h

Number3 db "blabla",0

.data?

Value dd ?

.code

mov eax, Number1

mov ecx, offset Number2

add ax, word ptr [ecx+4]

mov Value, eax
Эта программа не будет транслирована, но это не важно.

В секции данных (.data) есть 3 метки: Number1, Number2, Number3. Эти метки используются как указатели на то место в программе, где они расположены.

Директивы db, dw и dd используются для определения и инициализации основных единиц памяти, байт (db), слово (dw) и двойное слово (dd), на которую будет указывать метка стоящая перед этой директивой. Метка заменяет численное значение адреса распределенных единиц памяти символическим именем.
С директивой db, вы также можете определить строку, потому, что строка это фактически порядок байт, соответствующих символам в строке.

Секция данных (из примера выше) в памяти будет выглядеть вот-так: 33,20,01,00,00,01,00,02,00,03,00,04,62,6c,61,62,6c,61,00
(все числа шестнадцатиричные)
Я выделил цветами некоторые числа. Метка Number1 указывает на место в памяти, где синий байт 33, метка Number2 указывает на место в памяти, где красный 00, Number3 на зеленый 62.
Теперь, если вы мспользуете это в своей программе:
mov ecx, Number1
Это фактически будет означать:
mov ecx, dword ptr [место в памяти, где расположена dword 12033h]
А это:
mov ecx, offset Number1
означает:
mov ecx, место в памяти, где расположена dword 12033h
В первом примере, ecx получит значение, которое находится в памяти указанной меткой Number1. Во втором, ecx станет указателем на то место в памяти, на которое указывает метка Number1.
Эти два примера ниже, имеют тот же самый эффект:

Содержание  Назад  Вперед