Сейчас на форуме: bartolomeo, -Sanchez- (+4 невидимых)

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

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

Создано: 25 января 2006 19:36 · Поправил: Klajnor
· Личное сообщение · #1

Возможно-ли добавить в ехе файл секцию, которая проектировалась бы в память по адресу меньшему, чем Image Base?
Все мои попыткм добится такого результата в LordPe преводили к тому, что винда ругается, что файл не является приложением Win32



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

Создано: 25 января 2006 19:39
· Личное сообщение · #2

Хм. Как по втоему, что такое RVA ? Или я не понял сути вопросса?



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

Создано: 25 января 2006 19:55
· Личное сообщение · #3

RVA - это сокращение от Relative Virtual Address, т.е. относительный виртуальный адрес.
Относительно чего? - Относительно Image Base.

Отрицательных RVA помоему нет (IMXO) если я не прав пусть меня поправят.



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

Создано: 25 января 2006 20:09
· Личное сообщение · #4

xDriver пишет:
RVA - это сокращение от Relative Virtual Address, т.е. относительный виртуальный адрес.
Относительно чего? - Относительно Image Base.

Абсолютно согласен


xDriver пишет:
Отрицательных RVA помоему нет (IMXO) если я не прав пусть меня поправят.

Значит нельзя?



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

Создано: 25 января 2006 20:23 · Поправил: Bitfry
· Личное сообщение · #5

Klajnor пишет:
Значит нельзя?

Нельзя.
Если ты не понял из объяснений выше, можно сказать так.
Секции и заголовок составляют сам образ.
Вполне можно добавить данные после образа, они не будут грузиться в память из файла, но они не помешают быть ему рабочим ПЕ. Однако никак нельзя ни-то что добавить секцию перед образом, но даже и какие-нибудь другие данные, которые не будут входить в образ.
Это объясняется очень просто. Загрузчик рассчитывает в PE-файле увидеть сразу заголовок ДОС и за ним сигнатуру PE (dword).
Можно только в нутрии образа изгиляться, например секции в файл записывать не в том порядке, в котором они будут размещены в памяти, то есть можно создать PE, где у секции кода будет VA 405000h, за ней в файле пойдёт секция, у которой будет база 401000h.

Читай статьи по PE-формату:
http://www.exelab.ru/art/pe.php
http://www.exelab.ru/art/wasm1.php
http://www.exelab.ru/art/wasm2.php

ЗЫ А зачем тебе это?

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




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

Создано: 25 января 2006 21:37
· Личное сообщение · #6

Для распаковки PESpin (на примере виндовского калькулятора)
При опции API Redirection прот создаёт в памяти область(начало по адресу 790000h), куда пишет код, который вызывает функции API. На простой проге написанной мной за 5 минут просто сдампил эту область( она была по другому адресу; вроде 860000h) и прикрепил к eхе-шнику.
Хотел сделать тоже самое в кальке, но не смог, т.к. у него Image Base = 1000000




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 25 января 2006 21:40
· Личное сообщение · #7

1) Захукать VirtualAlloc и заставить его выделить память по адресу == ImageSize - получится какраз новая секция
2) Пропатчить в PESpin'овском настройщике импорта один jmp и получить импорт без редирекции



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

Создано: 25 января 2006 22:04
· Личное сообщение · #8

DrGolova пишет:
2) Пропатчить в PESpin'овском настройщике импорта один jmp и получить импорт без редирекции

Лан... Всё-же надо прочитать статью по распаковке =) И время теперь есть =)
Всем спасибо


 eXeL@B —› Вопросы новичков —› Вопрос по секциям
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати