Сейчас на форуме: zds, _MBK_ (+7 невидимых)

 eXeL@B —› Основной форум —› Проверьте на ошибки
Посл.ответ Сообщение

Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 июня 2007 15:31
· Личное сообщение · #1

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

3f9a_10.06.2007_CRACKLAB.rU.tgz - черновик01.rar




Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 10 июня 2007 15:39
· Личное сообщение · #2

langoner молодец, полезный документ получился (судя по содержанию). Ты бы заранее бета-тестеров искал, а то теперь читать много и трудно ошибки найти.

-----
radio uno in ibisa ...





Ранг: 69.2 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 10 июня 2007 15:50
· Личное сообщение · #3

langoner
А почему оглавление такое странное? Или ты просто ещё не дописал?



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 10 июня 2007 15:54
· Личное сообщение · #4

Почитаю на досуге как следует, а сейчас так на вскидку:

0x00004550, что соответствует строке “PE00”
Строго говоря, строке “PE00” в кодировке ANSI соответствуют байты 50h,45h,30h,30h.

Мне кажется, вообще не стоит привязывать 32-битную сигнатуру к тексту.

-----
Всем привет, я вернулся




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

Создано: 10 июня 2007 15:56 · Поправил: SLV
· Личное сообщение · #5

> PE-файл строго структурирован и состоит из: заголовка (header), страничного имиджа и необязательного оверлея (overlay).
нет... по сути PE file:
[ImageDosHeader (почти всё стаф кроме IMAGE_DOS_SIGNATURE и адреса ImageNtHeaders]
[ImageNtHeaders (включает ImageNtSignature; FileHeader и собственно OptionalHeader]
потом идёт массив ImageSectionHeader и сами объекты секций...
за ними если надо оверлей...
вобщем по сути PE я с тобой не согласен...

Двойное слово Signature содержит сигнатуру и должно равняться числу 0x00004550, что соответствует строке “PE00”.
точнее строка "PE " =]

При снятие дампа необходимо проверить данное поле, так как если дампер берет данное поле из памяти, то возможна ситуация когда паковщик изменяет его после загрузки файла.
как это телал tELock можно сказать =] а проверить данное поле я бы дополнил фразой "чтением с диска"...

SizeOfImage – размер загружаемого модуля в памяти, начиная от базового адреса загрузки (ImageBase) до адреса конца последней секции, выровненного до соответствующего значения. Значение данного поля должно быть кратно SectionAlignment.
я бы ещё сказал что значение равно VirtualAddress+VirtualSize последней секции файла...

CheckSum – контрольная сумма файла. Расчетом данного поля занимается функция CheckSumMappedFile из библиотеки Imagehell.dll
ещё MapFileAndCheckSum

Если длина меньше восьми символов, то оставшиеся элементы заполняются нулями, если же имя занимает все восемь байт, то завершающий нуль отсутствует
кем заполняется? всем пофигу на Name секции..

VirtualSize – неокругленный виртуальный размер секции в памяти.
почему это неокруглённый?

VirtualAddress – содержит смещение, по которому загрузчик должен отобразить секцию. Данное смещение вычисляется относительно ImageBase «необязательного» заголовка. Данный адрес должен быть выровнен в соответствии с полем Section Alignment. Крис Касперски пишет, что виртуальный адрес первой секции должен быть равен значению ALIGN_UP(SizeOfHeaders, SectionAlignment), в противном случае файл не грузиться.
не относительно ImageBase а считается:
sect.VirtualAddress := Align(prev.VirtualAddress + prev.Misc.VirtualSize,
peh.OptionalHeader.SectionAlignment);

....
дальше ниасилил...

-----
Shalom ebanats!




Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 июня 2007 16:44
· Личное сообщение · #6

"А почему оглавление такое странное? Или ты просто ещё не дописал?"

Еще не дописал.

"Строго говоря, строке “PE00” в кодировке ANSI соответствуют байты 50h,45h,30h,30h.

Мне кажется, вообще не стоит привязывать 32-битную сигнатуру к тексту."
Согласен. В документации правда всеже привязывают к строке. Из-за этого и название PE-файл
Прпвельней наверное написать "PE",/0,/0 или "PE",0,0

To SLV. Насчет сути PE-файла. Мне кажеться мы имеем в виду одно и тоже, только к заголовкам я отношу все заголовки, если можно так сказать (на самом деле не я, а документация). Если посмотреть на схему в файле, то она в точности повторяет твои слова. Если я правильно тебя понял.

"кем заполняется? всем пофигу на Name секции.."
ну если имя секции .rsrc то оставшиеся элементы должны быть нули, а если там будет мусор имя сеции будет воспринято иначе. К стати на данное имя не всем пофигу.

"почему это неокруглённый?"
Потомучто данное значение может быть и неокругленным. Загрузчик поймет.



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 июня 2007 16:58
· Личное сообщение · #7

To SLV.
"не относительно ImageBase а считается ..."
Это же RVA-адрес начала секции в памяти. А насчет как подсчитать это да. Согласен.



Ранг: 161.0 (ветеран)
Активность: 0.120
Статус: Участник

Создано: 10 июня 2007 17:43
· Личное сообщение · #8

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



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

Создано: 10 июня 2007 17:44 · Поправил: SLV
· Личное сообщение · #9

> Потомучто данное значение может быть и неокругленным. Загрузчик поймет.
любой ребилдер оптимизирую структуру файла округлит её... я приверженец того что всё должно быть красиво и округлено...

> ну если имя секции .rsrc то оставшиеся элементы должны быть нули, а если там будет мусор имя сеции
> будет воспринято иначе. К стати на данное имя не всем пофигу.
не это уже пересечение с дирой ресурсов... rsrc отдельный фрукт... а так на имя секции всем пох... кроме, ещё раз, rsrc...

а по третьему суть что загрузчик копирует в цикле да, относительно ImageBase*, c рва секций с диска по их физическим адресам (PointerToRawData).. *: а как на счёт релоков и коллизий модулей? это ещё одно а то что я до этого писал просто как дополнение/примечание...

-----
Shalom ebanats!




Ранг: 26.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 10 июня 2007 18:01
· Личное сообщение · #10

1. Изменить шрифт на более приятный глазу, на типа Verdana;
2. Сделать картинки четкими, а лучше по-хорошему некоторые картинки заменить таблицами, это я про начальные, которые показывают структуру PE
3. Нормально научится пользоваться форматированием в Word, так как во многих местах летают отступы

P.S. А так документ будет очень полезен в конце своего пути



Ранг: 52.2 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 10 июня 2007 18:10
· Личное сообщение · #11

tum0rc0re пишет:
3. Нормально научится пользоваться форматированием в Word, так как во многих местах летают отступы


Не даром же подписано: черновик01.rar


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


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