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

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

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

Создано: 26 февраля 2010 23:36
· Личное сообщение · #1

Можно ли безболезненно поменять секции в exe-файле местами или перемешать между собой.
Ну, тапа: вырезал, например, 2-ю секцию, а на ее место поставил 3, затем 4-ю. А 2-ю поставил после 4-ой.
В заголовке PE менять виртуальные адреса, я так понимаю не надо?



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 27 февраля 2010 00:25
· Личное сообщение · #2

ребилд, с полной редакцией заголовка, должен прокатить, хотя я честно говоря вконец 2ю не ставил, даже не думал никогда. а названия(вид) секций?




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

Создано: 27 февраля 2010 09:03 · Поправил: Модератор
· Личное сообщение · #3

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




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

Создано: 27 февраля 2010 11:42 · Поправил: Sunzer
· Личное сообщение · #4

Можно разве что все секции в одну склеить.
А так перемешать, это тяжело очень,например ведь после изменения адреса IAT нужно будет в коде все указатели править.

Да и смотря какие секции местами сменить хочешь и зачем.



Ранг: 61.7 (постоянный), 12thx
Активность: 0.090.02
Статус: Участник

Создано: 27 февраля 2010 17:16
· Личное сообщение · #5

я например не страдал никогда таким, да и вообще не только я. >>>

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



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

Создано: 27 февраля 2010 21:50 · Поправил: skp10
· Личное сообщение · #6

Да, инструментов, действительно много
Нет, я понимаю, что PE-header надо править.
Sunzer пишет:
например ведь после изменения адреса IAT нужно будет в коде все указатели править.

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

Я вот чего не пойму: если мы меняем только физический адрес, а виртуальный относительно ImageBase не меняем, то по идее все должно работать?

Файло полностью перебилдил), не вопрос, но это сделал не я, а утилита. Это, конечно все теория, но интересно. Если напряг, то извините.

Я просто файло ковырял, по теории все сделал правильно(в заголовках секций адреса подправил), а мне система и оля говорит, что файло плохой и не грузит его.



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

Создано: 27 февраля 2010 22:46 · Поправил: matrix
· Личное сообщение · #7

skp10 пишет:
файло плохой и не грузит его

выкладывай ссылку а не морочь людям голову. Может кто и посмотрит.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 28 февраля 2010 03:25
· Личное сообщение · #8

Во блин, напишут же такое. Читаем классику: из "Об упаковщиках в последний раз"

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

Всё понятно?

-----
Stuck to the plan, always think that we would stand up, never ran.




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

Создано: 28 февраля 2010 20:10
· Личное сообщение · #9

ARCHANGEL пишет:
Смотрите – теоретически невозможно поставить секцию пакера первой – это потребует коррекции ссылок в секции кода и коррекции ссылок между секциями кода и данных и т.п., да и не только.

Это понятно,что в пакерах так. Но у меня чистый файл.

Я просто с разбегу хотел поглубже разобраться в структуре PE, но видно придется покопаться более основательно.

ARCHANGEL пишет:
Всё понятно?

Понятно

Всем спасиба.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 01 марта 2010 02:26
· Личное сообщение · #10

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

-----
EnJoy!



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