Заметки в exe-файле

9 декабря 2010, четверг 05:47
для раздела Блоги
Дальнейшее развитие метода, описанного в статье "Окольцовывание программ" (http://people.overclockers.ru/siliks/record14).

Как говорится, зачем изобретать велосипед, если он уже изобретён? Нужно лишь оснастить его нужными нам "свистелками и перделками".

Кроме информации окольцовавания можно добавлять произовольную информацию, например заметки и комментарии пользователей о программе.

Функции работы с ini-файлами прекрасно работают, даже если в ini-файл напихать "левый" мусор. (В данном случае "мусором" будет сам код exe-файла). Таким образом, можно использовать всю мощь отработанного и отлаженного (и придуманного до нас) механизма работы с ini-файлами.

В конец exe-файла можно дописать всё что угодно, и он будет работать

Хотя Windows и не дает изменять запущенный exe-файл, он позволяет его скопировать и переименовать.

Чтение самого себя никаких проблем нам не создает - открываем свой exe-файл как ini и читаем.

Алгоритм записи такой же как и в случае "Окольцовывания файлов".
1) переименовываем свой файл в ExeFileName.exe.old
2) копируем свой файл в FileName.exe
3) пишем всё что хотим в FileName.exe как в ini-файл.
4) перед выходом из программы запускаем новую копию с ключом "/del ExeFileName.exe.old" чтобы удалить старый файл.
5) новая копия, будучи запущена с ключом /del удаляет ExeFileName.exe.old и завершает свою работу

Пример реализации на Borland Delphi 5 + библиотека KOL (для уменьшения размера).

Для удобства использования функции по "созданию заметок в exe-файле" вынесены в отдельный модуль: ExeFileNotes.pas

Особенности реализации: для корректной работы после компиляции к exe-файлу нужно добавить символ перевода строки (иначе первая запись в exe-файл сделает его неработоспособным).

Проще всего это сделать командой:

copy Example.exe+blank.txt

где blank.txt - текстовый файл, содержащий перевод строки.

скачать пример:
http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=34325&filename=exefilenotes.rar

Обсуждение: http://forums.overclockers.ru/viewtopic.php?t=278243
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают