Посл.ответ |
Сообщение |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 18 января 2007 20:12 · Личное сообщение · #1
Нужно слегка увеличить размер секции (кода) в файле (в пределах Virtual-размера). Какая прога это может?
| Сообщение посчитали полезным: |
|
Ранг: 115.1 (ветеран), 3thx Активность: 0.07↘0 Статус: Участник
|
Создано: 18 января 2007 20:20 · Личное сообщение · #2
если секция первая то увеличить ее размер не так и просто, особенно при большом количестве секций
в файле, и виртуальный размер здесь непричем, если последняя то сгодится практически любой
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 19 января 2007 02:20 · Личное сообщение · #3
0xy
Если нету оверлея, то несложно и самому накатать. Расчитываешь размер секции и отодвигаешь все последующие с поправкой в FileOffset'е.
| Сообщение посчитали полезным: |
 Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser
|
Создано: 19 января 2007 02:32 · Личное сообщение · #4
формула для вычисления размера с учетом выравнивания
NewSize=(x+(y-1))&(~(y-1)), где x -размер без выравнивания, y - выравнивающий фактор
----- Уважайте других и пишите грамотно. | Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 19 января 2007 10:11 · Поправил: 0xy · Личное сообщение · #5
HoBleen пишет:
Расчитываешь размер секции и отодвигаешь все последующие с поправкой в FileOffset'е.
Так ведь и все директории тоже двигать придется
PS
Задача в общем банальна: нужно вставить свой код в секцию кода. В памяти места хватает, а в файле--нет. Каждый раз делать это руками--запаришься.
В ПE тулз и Лорд ПЕ есть оптимизаторы файла. Они умеют ресайзить и двигать секции. Но иx цель (выбрасывание нулей) противоположна моей
Вот я и подумал: если инструмент существует, может кто-то (из авторов ПЕ редакторов) позволяет юзать его в обеих направлениях?
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 19 января 2007 10:35 · Личное сообщение · #6
0xy
Если есть оптимизатор, то должен быть и засиратор?
Сомневаюсь что есть готовый - никому не нужно имхо. Легче сразу пересобрать, чем сначала добавлять нулями, изменять, а потом снова обрезать нули.
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 19 января 2007 11:18 · Личное сообщение · #7
HoBleen пишет:
Легче сразу пересобрать
Это как??? Места ведь нету!
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 19 января 2007 11:21 · Личное сообщение · #8
0xy пишет:
Это как??? Места ведь нету!
Дык поэтому и пересобрать - переставить секции по вкусу, хидеры (и их размер) и указатели на директории.
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 19 января 2007 11:43 · Поправил: 0xy · Личное сообщение · #9
HoBleen
А инструменты для этого существуют?
| Сообщение посчитали полезным: |
 Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser
|
Создано: 19 января 2007 12:47 · Личное сообщение · #10
а не проще добавить новую секцию в конец файла?
----- Уважайте других и пишите грамотно. | Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 19 января 2007 13:18 · Личное сообщение · #11
Executioner пишет:
а не проще добавить новую секцию в конец файла?
Это слишком просто
| Сообщение посчитали полезным: |
Ранг: 162.2 (ветеран) Активность: 0.09↘0 Статус: Участник
|
Создано: 19 января 2007 23:55 · Личное сообщение · #12
0xy пишет:
Это слишком просто
ну тогда лоадер напиши, который нужный код инжектить будет
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 20 января 2007 02:00 · Личное сообщение · #13
0xy пишет:
А инструменты для этого существуют?
Не видел. Если очень надо - сам напиши - хапаешь все секции, заголовки, перестраиваешь под себя. Пересчитываешь офсеты на секции.
В результате процируемый фаил при загрузке должен отобразиться точно так же как и начальный.
| Сообщение посчитали полезным: |
Ранг: 214.1 (наставник) Активность: 0.13↘0 Статус: Участник
|
Создано: 20 января 2007 07:54 · Личное сообщение · #14
0xy пишет: Задача в общем банальна: нужно вставить свой код в секцию кода.
зачем обязательно в секцию кода. в любое свободное место и jmp туда, не влазит в одно место - на куски...
| Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 21 января 2007 00:26 · Личное сообщение · #15
0xy пишет:
В ПE тулз и Лорд ПЕ есть оптимизаторы файла. Они умеют ресайзить и двигать секции.
И добавлять они тоже умеют - было уже в форуме. В экзе с нестандартным выравниванием бывают проблемы, но тоже излечимо.
| Сообщение посчитали полезным: |
 Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser
|
Создано: 21 января 2007 01:00 · Личное сообщение · #16
да добавляй ты код в последнюю секцию и не парься. а ее увеличть просто.
а вообще, HoBleen пишет:
Если очень надо - сам напиши
в PE-формате ничего сложного нет.
----- Уважайте других и пишите грамотно. | Сообщение посчитали полезным: |
 Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 21 января 2007 22:27 · Личное сообщение · #17
я бы так не сказал...
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 200.3 (наставник) Активность: 0.09↘0 Статус: Участник
|
Создано: 22 января 2007 03:33 · Личное сообщение · #18
Ресайзить секции - врятли у вас получится, вы путаете, одно дело урезать секцию, другое - увеличить. Это не противоположно, это совсем другое и такое у вас врятли получится сделать универсальным для всех программ. По-моему - лучше забейте, а если нефиг делать, лучше напишите простой отладчик, чтоб его было удобно в анпакере применять  .
----- Само плывет в pуки только то, что не тонет. | Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 22 января 2007 05:02 · Личное сообщение · #19
PE_Kill пишет:
я бы так не сказал...
+1, но разговор не о формате, а о перестройке, кроме офсетов ничего трогать не надо.
DrFits пишет:
Ресайзить секции - врятли у вас получится, вы путаете, одно дело урезать секцию, другое - увеличить. Это не противоположно, это совсем другое и такое у вас врятли получится сделать универсальным для всех программ.
Они ресайзятся только в фаиле, образ остается таким же, за исключением последних нулей - вместо них какой-то добавленный код.
| Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 22 января 2007 22:50 · Личное сообщение · #20
DrFitsHoBleen
0xy пишет:
(в пределах Virtual-размера).
В такой постановке особых проблем нет - корретируется каталог секций и вставляются доп.байты.
Даже если, lordpe и petools не умеют вставлять байты в среднюю секцию(заголовок они точно умеют корректировать), то можно вставить байты через WinHex или простенькую прожку написать.
Только всегда есть опасность, что свободное место корректируемая прога использует и можно "погореть".
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 30 января 2007 09:58 · Поправил: HoBleen · Личное сообщение · #21
0xy
Если все еще нужно, то =)
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 30 января 2007 09:59 · Личное сообщение · #22 |
Ранг: 214.1 (наставник) Активность: 0.13↘0 Статус: Участник
|
Создано: 30 января 2007 23:42 · Личное сообщение · #23
HoBleen неплохо, спасибо за труд, руками не надо делать. только с оверлеем некорретно работает, но собственно это не проблема -> можно приклеить обратно.
| Сообщение посчитали полезным: |
 Ранг: 681.5 (! !), 405thx Активность: 0.42↘0.21 Статус: Участник ALIEN Hack Team
|
Создано: 31 января 2007 23:00 · Личное сообщение · #24
Самый простой метод - юзать CFF Explorer, такой редактор ехе-файлов. Для меня он стал популярным, и даже любимым, когда я столкнулся с проблемой обрезания секций после распаковки Armadillo, там просто надо выбрать Add section (Empty data) и указать размер секции, и у вас новая секция в ехе
----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: |
Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник
|
Создано: 01 февраля 2007 00:52 · Личное сообщение · #25
ARCHANGEL пишет:
и у вас новая секция в ехе
И какое отношение это имеет к удлиннению существующей секции.
| Сообщение посчитали полезным: |
Ранг: 214.1 (наставник) Активность: 0.13↘0 Статус: Участник
|
Создано: 01 февраля 2007 01:00 · Личное сообщение · #26
ARCHANGEL это может делать куча pe tools, я исп. lordpe
| Сообщение посчитали полезным: |
 Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 01 февраля 2007 03:09 · Личное сообщение · #27
ARCHANGEL пишет:
Add section (Empty data) и указать размер секции, и у вас новая секция в ехе
PETools давно это делает, там 3 метода вставки...
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 14 февраля 2007 21:18 · Личное сообщение · #28
HoBleen пишет:
0xy
Если все еще нужно, то =)
Спасибо, очень даже нужно!
Но к сожалению у меня не работает (под 9x-виндой): .bak файл создает ( всегда, независимо от флажка), а исходный не изменяет
Может поправишь
| Сообщение посчитали полезным: |
 Ранг: 240.5 (наставник) Активность: 0.19↘0 Статус: Участник Author of ACKiller
|
Создано: 15 февраля 2007 05:36 · Личное сообщение · #29
0xy пишет:
.bak файл создает (всегда, независимо от флажка)
Ну да, если галку не выставишь, то бак фаил - это темп файл =) особенности оптимизации: меньше кода - больше действий! )))
0xy пишет:
а исходный не изменяет
А вот это странно, ща посмотрю под 9х. По идее ничего не должно меняться..
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 20 июля 2007 02:46 · Поправил: 0xy · Личное сообщение · #30
HoBleen
Вот, глянь где падает. Пытается писать в Read-only регион.
Причем VirtualProtect (00401181) не может открыть его на запись.
| Сообщение посчитали полезным: |