|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.10.2010, 21:52 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Программно редактировать DLL(Необходим совет реализации)
Доброго времени суток!
Нужно помощь в реализации идеи. Есть dll которую нужно отредактировать. dll относится к игре. Через неё игра подгружает свои ресурсы, но иногда нужно при помощи плагинов к игре прописывать свои ресурсы в игру, но это создаёт дополнительную нагрузку на сервер игры. Что негативно сказывается на игровом клиенте. Зачем мне это? Как сказано выше плагины нагружают игру, при помощи такого рода вмешательства используя WinHex нагрузки нет т.к. игра считает это своим ресурсом. dll подгружает все ресуры и даже те которые не задействует(Они просто подгружаются). Суть в том чтобы все ненужные заменить на нужные с учётом сохранения неизменённого кол-ва символов в пути(тогда DLL остаётся рабочей) к примеру: Код:
все это можно делать при помощи WinHex путём редактирования бинарного файла. При помощи поиска(ctrl+f) и замены в 3 колонке(Текст). Но если нужно МНОГО редактировать то процесс нерально ДОЛГИЙ! Как это реализовать в программе на delphi? Находить в файле и изменять.. притом так чтобы после этого все работало как это делает WinHex? Последний раз редактировалось Человек_Борща; 14.10.2010 в 21:56. |
14.10.2010, 23:05 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Опять двадцать пять Вперед на мою страничку, качаем исходник патчера, там как раз патчер файла и/или памяти процесса. Можете даже, сразу скомпилить (иди даже скачать билд, уже не помню, давно было), и потом просто вставить в редактор патч, формат патча таков:
Код:
Код:
|
14.10.2010, 23:25 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Еслибы было все так просто.
Имеется ввиду написать целый редактор этой dll не для одного себя любимого. Необходимо найти в тексте dll нужный текст Код:
Как это делать программно? |
15.10.2010, 00:04 | #4 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
1. hexA = sounds\dtt\game_sound.wav (ну только перевести строку в hex) 2. hexB = sounds\dtt\mysd\sound.wav (аналогично) 3. вписываем следующее: "replace:hexA:hexB" 4. Жмем патчить файл, выбираем нужную .dll 5. Ура! Все готово, пользуемся. 6. Как распространить? Сохраняем данный патч в файл через Save As, далее ссылаемся на данный патч в сети и на данное ПО, все могут ставить патч. Другой путь: 1. Скачать исходные коды 2. Разобраться как проходит процесс патчинга файла 3. Реализовать аналог в своей софтине p.s. если опять спросите, и покажите тот же самый пример чего хотите, тогда вам лень выходит и хотите что бы за вас все сделали, так не бывает |
|
15.10.2010, 00:38 | #5 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Собственно мне не лень, теперь я понял меня просто очень интересовал вопрос связанный с StrToHex теперь с вашим ответом и этой функции(Де-то на задворках моей папки proojects она есть, я знаю),
Теперь StrToHex+ адрес A заменить на адрес B = то что мне надо! СПАСИБО. Плюсик в репу! Остался вопрос как искать в тексте dll? как к примеру найти теже: Цитата:
Открыть и использовать поиск в файле? Врятле это сработает с бинарным файлом. Если я вас правельно понял , то это именно то о чем в говорите: http://nemecsx.narod.ru/MemPatcher.zip ? Последний раз редактировалось Человек_Борща; 15.10.2010 в 00:46. |
|
15.10.2010, 10:04 | #6 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
1. http://nemecsx.narod.ru/MemPatcher.zip
2. Открываем вашу .dll в WinHex 3. Создаем файл новый размером пусть в 200 байт 4. Вставляем туда текст 5. Выделяем текст (уже в левой панели) и Copy As Hex 6. Вставляем последовательность hex в патч Что сложного? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходим совет по курсовой, декарт) | MadReason | Помощь студентам | 3 | 25.05.2010 11:20 |
С++Builder - построение графиков - необходим совет | _Денис | Помощь студентам | 0 | 13.11.2009 15:15 |
(php)(IMAP)делаю скрипт для работы с почтой, необходим совет | Филлип | PHP | 1 | 18.09.2009 23:14 |
Программно выгрузить DLL из памяти | Air | Помощь студентам | 7 | 01.05.2008 00:06 |
Можно программно создать dll из текстового файла? | hamann-2006 | Помощь студентам | 2 | 29.10.2007 10:41 |