![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| YoD |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.11.2004 Репутация: нет Всего: нет |
Подскажите пожалуйста: можно ли как-нибудь в exe-файл, скомпилированный Visual Basic'om .NET, добавить ещё какую-нибудь информацию? К примеру, я пишу программу архиватор, и мне нужно в уже готовую программу-распоковщик внедрить упаковываемые файлы. Если такое возхможно, то подскажите пожалуйста, как внедрять информацию и как её оттуда доставать самой программой?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Да запросто. Вставляешь в текст программы код-болванку работы с этой инфой - полностью правильный, но с неверным смещением (seek). Компиляешь. Смотришь какое получилось реально смещение. Изменяешь код. Пересобираешь.
Блок данных можно вставлять как в неиспользуемое пространство (сегментов, stub'a, relocation table, etc.), так и в хвост. А вообще это неразумно - для чего, спрашивается, придуманы ресурсы? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| YoD |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.11.2004 Репутация: нет Всего: нет |
Спасибо за информацию, но, если не трудно, можно поподробнее про смещения и всё вышеописанное. И буду очень благодарен за пример исходника. А то честно говоря я плохо понял...
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Чтение куска данных из самого себя (draft):
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 7 Всего: 61 |
А почему нельзя взять то, что ты хочешь заархивировать, сжать его, а потом с помощью System.Reflection.Emit сгенерить новый EXE'шник, вставив в него в виде embedded resource сжатые данные? Тем более, что если ты модифицируешь .NET assembly после компиляции, она уже не будет запускаться средой.
Вот. |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: нет Всего: 71 |
Все гораздо проще: берем заренее подготовенную откомпилированную программу, которая будет извлекать из себя данные, присобачиваем к его концу файлы, которые будут извлекаться, а их размеры записываем где нибудь в ресурсах этого файла. Всё
Извлекать файлы удобнее с конца, например, чтобы извлесь последний нам надо знать размер всего экзешника и размер этого файла. Чтобы извлечть предпоследний - смещение последнего и размер предпоследнего. и.т.д |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 7 Всего: 61 |
Мне кажется, что подход с Reflection.Emit более соответствует идеологии .NET. Таким образом свой самораспаковывающийся архив можно будет подписать, чтобы удостоверить его аутентичность.
|
|||
|
||||
| YoD |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.11.2004 Репутация: нет Всего: нет |
Всем спасибо за информацию...
|
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |