|
|
| Посл.отвђт | Сообщен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 |