![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ЧеловекБорща |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 5.6.2010 Репутация: нет Всего: нет |
Всем доброго времени суток!
Сразу хочу сказать это не обсуждение взлома программы с целью снятия её органичений. И вот почему: Есть игра использующая некоторую dll в сетевой игре. Используя dll игра подгружает игровые ресурсы. Инога приходиться добовлять в игру новые "рюшечки" используя плагины, таким образом игра подгружает ещё n-ое кол-во ресурсов. Ресурсы имеют ограничение в размере 512 файлов. dll подгружает ресусы независимо нужны они или нет. (Она подгружает вообще все ресурсы. И те которые надо и те которые вообще не надо). Суть состоит в том чтобы заменять в dll не нужные ресурсы. Таким образом избавляюсь от двух зайцев сразу: Укладываюсь в 512 файлов и заменяю все неиспользуемые ресурсы на свои. Таким образом нагрузка падает т.к. нет плагинов. Но вот проблема, надоело мне dll править используя HEX редактор. Собственно суть темы такая: Как найти в dll HEx-адрес 1 и заменить его на HEX-адрес 2? К примеру найти этот: 737072697465732F736D6F6B652E737072 Если нашли, то заменить его на: 6D79737072697465732F6F6B652E737072 |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
Примитивный способ:
1)загрузить DLL в строку 2)создать подстроку, с указанным HEX-кодом 3)функцией Pos найти положение подстроки 4)ф-цией Replace заменить на другую подстроку 5)сохранить строку обратно в файл |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Нет смысла искать в хексе, проще хекс сконвертировать в бинарный массив и искать его. Например функция SearchBuf ищет в буфере строку (правда искомый массив придется хранить в виде AnsiString)
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
так я это имел ввиду
в пункт 2 я подразумеваю конвернуть искомую строку в бинарные данные и файл грузится как бинарный, просто все данные грузяся в строки -удобные контейнеры для мунипуляции любыми данными с автоматической сборокй мусора))) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |