Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2012, 08:47   #1
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию как дописать некий код в конец запущенного *.ехе файла?

Доброе время суток.
Есть вопрос, можно ли вообще и если можно, то, как дописать некий код в конец запущенного *.ехе файла?
Поясню, запускаю *.ехе файл, программа считывает число в конце своего кода(число распологается после основного кода), отрабатывает свой код, в конце генерирует случайное число, перезаписывает в конец своего кода число, прекращает свою работу. Заранее спасибо.
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 28.08.2012, 09:16   #2
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

А в чём проблема? AssignFile, Reset, Seek, BlockRead.
Kix.IV вне форума Ответить с цитированием
Старый 28.08.2012, 09:41   #3
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Нельзя таким образом открыть файл, открытый на исполнение
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 28.08.2012, 10:19   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Никак, минимум по трём причинам.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 28.08.2012, 18:41   #5
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

но копию сделать можно же, значит лазейки есть, только вот какие...
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 28.08.2012, 18:53   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А, стесняюсь спросить, зачем на горячую патчить?
Чего не пропатчить сам файл пока он не запущен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.08.2012, 19:16   #7
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

да нет, это не патч, это запись нескольких байт в конец кода программы, который на работу самой программы никак не влияет
эта процедура своего рода защиты файла
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 28.08.2012, 19:23   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

копирование не изменяет исходный файл.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.08.2012, 19:38   #9
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
копирование не изменяет исходный файл.
верно, но и я не хочу его менять (вроде как ), но для того чтобы скопировать файл, его надо прочесть, значит существует способ снять запрет на модификацию кода. Ведь если я не ошибаюсь, после запуска программы, её код копируется в память и уже из памяти происходит его исполнение, значит можно безболезненно модифицировать сам файл, просто стоит какая-то защита... как снять ее
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 28.08.2012, 19:50   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
верно, но и я не хочу его менять (вроде как )
то есть изменить пару байт это не менять файл?
Цитата:
но для того чтобы скопировать файл, его надо прочесть, значит существует способ снять запрет на модификацию кода.
читать то можно, менять нельзя, чтение не есть модификация.
Цитата:
Ведь если я не ошибаюсь, после запуска программы, её код копируется в память и уже из памяти происходит его исполнение, значит можно безболезненно модифицировать сам файл, просто стоит какая-то защита... как снять ее
он проецируется в память, и файл все еще нужен, применяется в целях экономии виртуальной памяти.
ваш вариант это скопировать самого себя и изменить у копии байты нужные.

приложил файл с картой процесса оперы, чтоб было яснее.
выделены, те самые "злые" страницы..
Изображения
Тип файла: jpg 1.jpg (66.7 Кб, 194 просмотров)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 28.08.2012 в 19:54.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конец программы в *.ехе xrob Общие вопросы Delphi 18 26.05.2011 03:24
Как узнать путь запущенного exe файла (С# WPF) Яр|/||< (^_^) WPF, UWP, WinRT, XAML 3 04.09.2010 16:37
Дописать в конец файла Cdevelop Общие вопросы C/C++ 1 25.03.2009 21:39
Дописать в конец файла Cdevelop Общие вопросы C/C++ 5 15.03.2009 16:46
Код ехе файла Micha Общие вопросы Delphi 4 09.10.2007 18:06