![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Есть задача, сохранять некоторые параметры, точнее даже один параметр, но сохранять его нужно непосредственно в самом исполняемом файле, как это можно реализовать или где об этом можно почитать? использую компилятор MinGW.
|
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 1 Всего: 9 |
ecspertiza, А куда тебе в него нужно писать? Может в оверлей?
|
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Если честно я в этом вопросе не особо осведомлен, знаю что можно хранить небольшие значения, непосредственно в самом исполняемом файле, которое при загрузке можно вытащить и при желании изменить. Если бы меня в этом вопросе хоть как то просветили был бы признателен, ибо у меня что то ничего путевого найти не получается.
|
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 1 Всего: 9 |
ecspertiza, Просто задачи бывают разными! Бывает поменять логику работы ПО,т.е. поменять бинарный код и тут уже совсем другое! А бывает просто сохранить конфигурацию, т.к. не хочется таскать файл-базуданных и тут уже лучше всего оверлей программы.
Оверлеем принято считать все что не попадает в виртуальное пространство запущенного приложения. На начальном этапе можете упростить себе понимание оверлея до следующего: OverlayRaw = RvaToRaw( ALLIGN_UP ( PE->OptionalHeader.SizeOfImage, PE->OptionalHeader.SectionAllignemnt ) ); OverlayLen = FileLength - OverlayRaw; где: PE - это объект IMAGE_NT_HEADERS32 RvaToRaw - это функция конвертирования смещения используемого для адресации в виртуальном адресном пространстве в смещение используемое для адресации в файлвом пространстве Рекомендуется сходить на rsdn.ru, wasm.ru на предмет устройства PE-формата |
|||
|
||||
| Abyx |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 2 Всего: 10 |
EvilsInterrupt, ты бы лучше начал с того, что сделать это во время выполнения этого .exe - весьма сложно
|
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Возможно и оверлея хватит, мне нужно просто при первом запуске записать значение даты и время, а потом просто его читать, насколько я понял те ф-ции которые ты скинул они для студии, а есть ли что то подобное в MinGW ?
это я понимаю, поэтому мог бы писать значение при инсталляции. Это сообщение отредактировал(а) ecspertiza - 23.6.2010, 13:03 |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 1 Всего: 9 |
ecspertiza, Те функции что привел, поясняют чего тебе надо сделать, их можно написать и самому! Более того, каждый работающий с PE программно пишет каждый свою реализацию! И правильно! Потому что надо понимать что делаешь, это не простой формат
|
|||
|
||||
| Abyx |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 2 Всего: 10 |
если надо писать при инсталляции - то проще писать в заголовок, например в стаб,
по смещениям в файле (и в памяти) в интервале [0x4; 0x3C) |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Это делать плохо по нескольким причинам.
1) Теряется поддержка различных пользователей. 2) Виста+ запрещает записывать, что-то в папку Program Files 3) Антивирус может принять за вирусоподобное действие. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Abyx |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 2 Всего: 10 |
1) если сохраняемые параметры одинаковы для всех юзеров - все ОК 2) в скрипте установки - не запрещает Добавлено через 42 секунды хотя при установке проще писать в реестр %) |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Раз так все непросто, может подскажете как лучше поступить, нужно разрешить пользователю использовать программу только 10 дней, я думал записать в исполняемый файл дату при инсталляции , потом при запуске сверять, и если что запрещать запускать, но раз все не так просто может есть лучший вариант, в реестр писать не хочется, ибо значение слишком просто поправить.
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 6 Всего: 135 |
Интересно, а функции доступа к ресурсам тоже запрещены ? Не "сырой" PE-формат а именно FindResource, UpdateResource и т.п. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Abyx |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 601 Регистрация: 3.11.2009 Репутация: 2 Всего: 10 |
borisbn, на запись - запрещены
|
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
GremlinProg, что-то там везде .NET. К обычным то файлам можно применить?
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |