Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Расчет SizeOfInitializedData.
Посл.ответ Сообщение

Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 18 февраля 2017 17:14
· Личное сообщение · #1

Я знаю, что данное значение игнорируется загрузчиком, и считают его все по разному. Но хотелось бы узнать пару основных возможных вариантов. Например я удлинил в файле размер секции и что то туда дописал. Как мне посчитать новое значение SizeOfInitializedData?



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 18 февраля 2017 17:51 · Поправил: dosprog
· Личное сообщение · #2

Адрес начала секции известен, адрес записи тоже.
Вычли и получили.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 18 февраля 2017 18:01 · Поправил: zombi-vadim
· Личное сообщение · #3

dosprog Я вас не понял, SizeOfInitializedData хранит суммарный размер всех секций. А если я вообще новую секцию добавил?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 18 февраля 2017 19:18
· Личное сообщение · #4

Не всех секций, а где стоит флаг Initialized Data. Возьми да пересчитай.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 18 февраля 2017 20:33
· Личное сообщение · #5

Загрузчик не использует, но все свободные поля нужно корректно заполнять, так как ав может на них строить детекты.

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 18 февраля 2017 22:25
· Личное сообщение · #6

difexacaw пишет:
но все свободные поля нужно корректно заполнять

А что значит корректно? Даже если у секции стоит флаг initialized data, нигде не указано, где собственно эти инициализированные данные и какой у них размер.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 18 февраля 2017 23:13
· Личное сообщение · #7

Все пишут все что им вздумается, но не слова как все таки получить это значение.
Всякий линкер заполняет эти поля по-своему: одни берут физический размер секций на диске, другие – виртуальный размер в памяти, выровненный по границе Section Alignment , вот вычитал.



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 18 февраля 2017 23:22
· Личное сообщение · #8

zombi-vadim пишет:
но не слова как все таки получить это значение

Это диаметр сферического коня в попугаях. Заполняй эти поля в соответствии с линкером, который собирал твою ехешку, иначе аверы будут генерик детекты выдавать. Остальным же вообще посрать на эти размеры.

| Сообщение посчитали полезным: sefkrd

Ранг: 6.2 (гость), 10thx
Активность: 0.020
Статус: Участник

Создано: 18 февраля 2017 23:36
· Личное сообщение · #9

rmn пишет:
Остальным же вообще посрать на эти размеры.

Ну для пакеров, например, не посрать, для отладчиков тож.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 18 февраля 2017 23:42
· Личное сообщение · #10

rmn Как я могу заполнить это поле в соответствии с линкером, если я изменил размер секции, значение будет не правильным!!



Ранг: 6.2 (гость), 10thx
Активность: 0.020
Статус: Участник

Создано: 18 февраля 2017 23:55 · Поправил: __X3__
· Личное сообщение · #11

zombi-vadim
Верни взад размер секции.
ps. А файлик секретный, или можно глянуть?



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 19 февраля 2017 00:02
· Личное сообщение · #12

__X3__ Файлик пустой. Я не пишу вирус, я изучаю формат РЕ.



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 19 февраля 2017 00:06 · Поправил: dosprog
· Личное сообщение · #13

zombi-vadim пишет:
Все пишут все что им вздумается, но не слова как все таки получить это значение.

Обнули его и не парься.





Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 19 февраля 2017 01:04
· Личное сообщение · #14

dosprog Да штож такое то! Я хочу парится, я хочу узнать как рассчитать значение!!




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 19 февраля 2017 01:06
· Личное сообщение · #15

zombi-vadim

> Как я могу заполнить это поле в соответствии с линкером

Чем вы там поритесь. Вам в системе к примеру мало файлов

Почитайте матчасть --> Link <-- и начните думать.

-----
vx





Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 19 февраля 2017 01:41
· Личное сообщение · #16

Вроде как-то так:

"If the section is marked to contain initialized data add either the virtual size rounded to the nearest file alignment multiple or the raw data size which ever is greater and the total should add up to the amount in the initialized data section."

-----
Give me a HANDLE and I will move the Earth.



 eXeL@B —› Вопросы новичков —› Расчет SizeOfInitializedData.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати