· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› VirtualSize & SizeOfRawData

Посл.отвђт Сообщенiе


Дата: Сен 23, 2004 14:56:40

Привет!
У меня вопрос ко всем, кто разбирается в тонкостаях PE.
В документации по PE говорится, что SizeOfRawData секции должно быть меньше, чем VirtualSize. Между тем мне не попадалось еще ни одного ЕХЕ, где бы это правило соблюдалось. Например, вот секции Calc.exe:
Name	VOffset		VSize		ROffset		RSize		Flags
.text	00001000	000126B0	00000400	00012800	60000020
.data	00014000	0000101C	00012C00	00000A00	C0000040
.rsrc	00016000	00008A70	00013600	00008C00	40000040

Более того, я недавно писал вирус, который увеличивал последнюю секцию и выставлял новое значение VirtualSize "по правилам" - модифицированная прога отказывалась загружаться.
Просветите, пожалуйста, лесного жителя, где же правда? Или где меня глючит?


Дата: Сен 23, 2004 20:39:45 · Поправил: Funbit

а где это написано?

и что же получится, если, у последней секции данные будут находиться в конце файла, а VSize будет больше RSize ? что будет грузиться в память ? за пределами RSize файл же кончится :)


Дата: Сен 24, 2004 08:42:12

"за пределами RSize файл же кончится" - а ФАСМ так неинициализированные данные определяет, чтобы новую секцию не писать. В память грузятся нули.
.data

x dd size_of_initialized_data

;-------- Size Of Raw Data

y rd size_of_uninitialized_data

;------- Virtual Size


Дата: Сен 24, 2004 12:06:46 · Поправил: vinnie_pooh

Funbit
„а где это написано? “
В книге Пирогова Assembler для Windows, еще где-то, не помню.

Все, вопрос снимается, всем спасибо, я нашел удовлетворительный ответ в "Путеводителе по написанию вирусов под Win32: 3. Заголовок PE". Правда, он противоречит источникам, о которых я говорил выше:
В EXE VirtualSize содержит реальный размер кода или данных. A SizeOfRawData округляется, потому и больше.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.104