Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> конфигуратор для .exe файла 
:(
    Опции темы
ShowMessage
Дата 18.7.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Здравствуйте!

ктонибудь может поделиться примером нужно сделать чтото типа конфигуратора для .ехе файла чтобы можно было открывать файл конфигуратором и изменять параметры. если можно с примером
PM MAIL   Вверх
aleksh
Дата 18.7.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 3
Всего: 13



какие параметры? файла (только чтение/скрытый), в файле (кнопки красного цвета и круглые), действий файла (форматировать диск D, а не С)?
параметры изменять до запуска файла, после или вместо?
PM MAIL   Вверх
sai_NT
  Дата 18.7.2008, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: нет
Всего: 3



PM MAIL   Вверх
ShowMessage
Дата 18.7.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



например есть *.ехе файл, нужно открыть его конфигуратором и изменить к примеру значение string или integer, *.ехе файл мой в нём будет присутствовать несколько простых функций. 
PM MAIL   Вверх
Poseidon
Дата 18.7.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(ShowMessage @  18.7.2008,  16:38 Найти цитируемый пост)
есть *.ехе файл, нужно открыть его конфигуратором и изменить к примеру значение string или integer
Это можно понять как "есть программа, которая сохраняет какие-то даные в файл настроек. Можно ли сделать другую программу (конфигуратор), которая будет этот файл настроек изменять, а первая программа подом эжти новые настройки подхватывать". Ответ: Да!



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Qu1nt
Дата 18.7.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 18
Всего: 50



Угу, только при этом первая программа и является файлом настроек smile 
PM MAIL   Вверх
ShowMessage
Дата 18.7.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Цитата(Poseidon @ 18.7.2008,  17:28)
Цитата(ShowMessage @  18.7.2008,  16:38 Найти цитируемый пост)
есть *.ехе файл, нужно открыть его конфигуратором и изменить к примеру значение string или integer
Это можно понять как "есть программа, которая сохраняет какие-то даные в файл настроек. Можно ли сделать другую программу (конфигуратор), которая будет этот файл настроек изменять, а первая программа подом эжти новые настройки подхватывать". Ответ: Да!

Нету файла настроек!!!

Есть готовый .ехе с парой простых функций например поиск файла и нужно сделать другую программу (конфигуратор) которая откроет этот .ехе и изменить в нём переменную (String) к примеру,  это имя искомого файла, или же другую переменную.

если кто знает принцип работы подскажите  (лучше с примером).

Это сообщение отредактировал(а) ShowMessage - 18.7.2008, 17:54
PM MAIL   Вверх
aktuba
Дата 18.7.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(ShowMessage @  18.7.2008,  18:53 Найти цитируемый пост)
если кто знает принцип работы подскажите  (лучше с примером).

Редактирование ресурсов?  smile 


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ne0n
Дата 18.7.2008, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 1
Всего: 11



Цитата(sai_NT @  18.7.2008,  15:29 Найти цитируемый пост)
http://www.google.com.ua/search?hl=uk&...D0%B0&meta=


улыбнуло, это намек на намерияния ТС? smile 


Цитата(aktuba @  18.7.2008,  19:28 Найти цитируемый пост)
Редактирование ресурсов? 


не катит это ему)))


а теперь по теме. компилишь 1 вариант проги. компилишь 2-й вариант проги заменив все значения констант, которые необходимо менять. Пихаешь в любую прогу которая побайтово умеет сравнивать. находишь смещение в файле. патчишь. все.

Это сообщение отредактировал(а) ne0n - 18.7.2008, 20:15
PM MAIL ICQ   Вверх
sai_NT
  Дата 18.7.2008, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 8.8.2007

Репутация: нет
Всего: 3



Зря не обратил внимание на мой 3-й пост, там много есть инфы про написание и принципы постоения билда. В качестве присера выступает небезизвестный Пин4 от уважаемого многими человека.

Теперь по существу. Как я понял тебе нужно в скомпиленой проге (иными словаме в экзешнике) с некоторой периодичностью, возникающей по потребности, править некоторые строковые данные. Если это так, то для начала сделай это в фаре, чтобы прочувствовать процесс. Я делал это так: курсор на прогу, далее F4, далее F7, ввожу строку поиска, ентер, фар находит ее, далее жму Insert, меняю на новое значение, жму F2, отвечаю на вопрос ентером и запускаю пропатченную прогу.

Теперь программирование:
зная смещение относительно начала файла твоего значения, которое нужно изменить, код будет где-то таков:
Код

var
hFile : THandle;
dwTemp, Address : Cardinal;
bZero : char;
begin
  hFile := CreateFile('Proga.exe',GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); //Открываем файл
  if hFile <> INVALID_HANDLE_VALUE then //Если файл не открылся то "Ошибка"
  begin
    SetFilePointer(hFile, Address, nil, 0); //Address - смещение в байтах относительно начала файла
    WriteFile(hFile, PChar(Edit1.Text)^, Length(Edit1.Text), dwTemp, nil); //тут прописываем новое значение
    if dwTemp = 0 then begin
      ShowMessage('Ошибка'); //если файл не записался
      CloseHandle( hFile ); //закрываем файл
      exit;
    end
    else begin
      bZero := #0;
      WriteFile(hFile, bZero, 1, dwTemp, nil);
    end;
    CloseHandle( hFile ); //закрываем файл
    ShowMessage('усё гуд;)'); //если всё получилось
  end
  else
    ShowMessage('Ошибка!'); // если опять шняка
end;


Учти прога может быть запакована, пройдена протами и тогда такой трюк не пройдет. Также есть примеры с использованием методов: CreateFileMapping, MapViewOfFile, UnmapViewOfFile

Добавлено через 14 минут и 9 секунд
Цитата(ne0n @  18.7.2008,  20:09 Найти цитируемый пост)
улыбнуло, это намек на намерияния ТС? 


Где-то так я думаю и обстоит дело =)
PM MAIL   Вверх
Poseidon
Дата 21.7.2008, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(ShowMessage @  18.7.2008,  17:53 Найти цитируемый пост)
если кто знает принцип работы подскажите  (лучше с примером).
Принцип работа я тебе описал. Нужно менять значения, сделай это через "файл настроек". Все потенциально изменяемые значения переменных в этот файл. Сами переменные из программы берут значения из файла. Тогда изменение быдут очень просты. Открыл файл настроек и поменял.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.