Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PE - расширение последней секции файла

9.7K
15 сентября 2011 года
Vitamant
228 / / 07.02.2011
Доброго времени суток! Не уверен, что пишу в тот раздел, но он показался наиболее подходящим.

Суть вопроса такова — как расширить секцию exe-файла? Занимаюсь взломом игры с целью перевода оной на русский. Нужно расширить таблицы символов с 95 до 255 символов. Места под них нет. Решил перенести в конец секции (.data). За ней шла еще одна — .rsrc, содержащая иконку. Снес, ибо не иконками едиными живы. Пытаюсь выправить заголовок — руками не получилось — система матерится. Взялся ковырять PE Explorer'ом — увеличиваю Raw Data Size на 0х2000, Virtual Size на столько же, в конец файла забиваю соответствующее количество нолей. Сохраняю изменения, правлю общий размер образа (Image Size) — все здорово, PE Explorer верно позиционируется на начало\конец секции. Запускаю экзешник из-под дебагера и что я вижу: на то место, которое я отвел для своих табличек, кто-то нагло пишет свои данные!

Я новичок, столкнувшийся с дебагерами, дампами, виртуальной памятью, ассемблером впервые и задачи изучить их "здесь и сейчас" перед собой не ставлю (но в ближайшем будущем — всенепременно), посему интересуюсь — за счет чего происходит такое безобразие, и как от него избавиться? Как корректно расширить секцию файла под свои данные и заставить exe'шник это увидеть и писать\распаковывать свое содержимое за пределами этой секции (или в ней, но чтобы я мог где-нибудь разместиться и меня не перезатерли).
277
16 сентября 2011 года
arrjj
1.7K / / 26.01.2011
ставишь бряк на доступ к памяти по записи/чтению
А что за игра-то?
349
16 сентября 2011 года
Phantom-84
656 / / 27.10.2005
После секции данных обычно идет секция неинициализированных данных, которая также описана в файле, но не содержит данных, сохраняемых в файле. Вручную ее сместить нельзя (чтобы расширить секцию данных), т.к. все относящиеся к ней адреса зашиты в коде (их может оказаться слишком много). Раз есть возможность перемещать таблицу в пределах секции данных, то можно попробовать создать отдельную несмежную секцию данных специально для таблицы.
9.7K
16 сентября 2011 года
Vitamant
228 / / 07.02.2011
Проблема, наверное, решена, ибо уже три источника посоветовали одно простое решение - завести новую секцию.

К сожалению, отладчиком я вчера воспользовался впервые в жизни и "бряки" еще ставить не научился. :) Так что интересовала не столько причина, сколько решение - умом то я понимал, что если virtual size больше физического размера в 100 раз - значит он будет разворачиваться в памяти. А единственное приходящее на ум решение у меня сводилось к "забить 2мб нолями" что не есть гуд.

За попытку помочь спасибо! :)

Что до игры - старенькая Battle of the Youstrass. Я тут, на форуме, с год назад начал ее ломать. С тех пор разобрал ресурсы по винтикам и вот теперь взялся потрошить exe'шник. Опять же перевод уже готов на 80%. Так что скоро выложу плоды своих издевательств. Узнал много нового и интересного в процессе взлома! Всем рекоменду.

---

Исправлено: 4 человека. :D Phantom-84, также спасибо за, видимо, самое верное решение данной проблемы!
14
16 сентября 2011 года
Phodopus
3.3K / / 19.06.2008
странно, т.к. pe explorer должен был предусмотреть и проверить bss секцию. но может оно и так
9.7K
17 сентября 2011 года
Vitamant
228 / / 07.02.2011
Цитата: Phodopus
странно, т.к. pe explorer должен был предусмотреть и проверить bss секцию. но может оно и так


А там нет .bss. Есть толкьо .text, .rdata, .data и .rsrc
Кстати, существуют ли удобные софтинки для работы с секциями файла? PE Explorer очень порадовал, но он не умеет (или скрывает, что умеет) создавать новые секции. Так что я превратил идущую в конце секцию ресурсов в еще одну .data с именем .rus. Можно, конечно, и в WinHEX поправить, но хочется немножко полениться. :D

7
17 сентября 2011 года
@pixo $oft
3.4K / / 20.09.2006
PE tools же
9.7K
17 сентября 2011 года
Vitamant
228 / / 07.02.2011
Благодарю! :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог