Список форумов .:csmania:.

.:csmania:.
Универсальный русскоязычный портал о Counter-Strike

FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   Команда сайтаКоманда сайта   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 


OpenPtch - ViTYAN
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов .:csmania:. -> Developers Forum
Предыдущая тема :: Следующая тема  
Автор Сообщение
vityan666
CSMANiA ENGiNEER
CSMANiA ENGiNEER


Зарегистрирован: 14.04.2007
Сообщения: 137


СообщениеДобавлено: Сб Ноя 10, 2007 11:59 pm    Заголовок сообщения: OpenPtch - ViTYAN Ответить с цитатой

OpenPtch сокращение от Open Patch Engine это кросплатформенная переносимая библиотека для работы с двоичными файлами(или так называевыми бинарными файлами)
Для операционной системы Windows существует множество подобных решений(пач мейкеров) но вот операционные системы семейства Unix-Like не имеют подобных ютилит.

А чем не катит grep,diff,patch И sed спросите вы?
А тем что первые 3 работают только с текстовыми данными а работа с двоичными данными в sed ожидает желать лучшего(и в добавок сильно ограниченна по своим возможностям).

Плюсы приложений для Windows в том что они автоматически готовят исполняемый двоичный файл(экзэшник) для вас.
В случае же библиотеки пачи вам прийдётся компоновать самим.

Слово Open в названии проекта присутствует не просто так. Это полностью Free(подразумевается Free от FSF и GNU ну и конечно же бесплатность) библиотека с открытым исходным кодом который будет распространяться под GPL лицензией.


И так базовая информация: о коде проекта:
Язык программирования: C
Соответствие стандартам:Standard "C" Specification C90/C99, The Single UNIX Specification, Version 2
Система компоновки: GNU GCC 3.X/4.X(Возможно и 2.9X тоже пойдёт)/MSVC


Для тех кто после всего объяснения о проекте так и не понял что
такое OpenPtch...

OpenPtch это не пач!!! OpenPtch это библиотека разработчика для обработки двоичных файлов.
OpenPtch работает только с файлами и паттэрнами.
Что такое Valve,TF2,CSS и прочая байда OpenPtch не имеет понятия.
В краце OpenPtch это решение для профессионалов(реверсеров,модификаторов,переводчиков) которые знают что и где они хотят менять(OpenPtch не создаёт паттэрны и не включает их в себя - их создаёте вы сами и используйте его API для их поиска и замены в конечном файле) а не для конечных пользователей которые кроме как нажать на иконки два раза ничего в жизни не смыслят...



Информация о библиотеке:
Поддерживается работа с гигантскими массивами данных(свыше 4-ёх ГБ)
Загрузка файла в память происходит сразу и целиком(Поэтому вам понадобится памяти минимум в размер загружаемого файла - Попробуйте грузануть 3 ГБ Very Happy)
Поддерживаются паттэрны с Wildcards(?) а так же полубайтовые паттэрны(HB Patterns) на пример A? 6C ?8 ??(HB не поддерживают даже самые продвинутые мастдайные Hex редакторы и пач мейкеры).

И много чего ещё Very Happy



TODO:
Составление API документации.


Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!



Лицензия:GPLv3
Ограничения накладываемые этой лицензией: Свобода расспространения,модификации и использования кода в других GPL проектах.
Использование библиотеки в проприетарных(не обязательно платных. проприетарными считаются так же бесплатные приложения распространяющиеся с закрытым исохдном кодом или имеющие тяжёлые лицензии копирайта).

Список бешенных(Very Happy) изменений:

1.0
Первый релиз

1.01
Изменён код для улучшения переносимости.
Определены доп дэфы:
При компиляции под Винду:
Определите дэф _WIN32_ или __WIN32__
Если используется Microsoft Visual C то в добавок определите ещё _MSVC_ или __MSVC__

1.1
Изменён код для улучшения переносимости.
Теперь нету надобности специальных дэфиниций для определённых компоновщиков. OpenPtch будет собираться с помощью GCC и MSVC без всяких проблем(так же MSVC не будет жаловаться на использование стд функций для работы со строками и файлами а не их MS *_secure альтернатив - переносимость превыше всего. MS всего лишь ведёт пропаганду для внедрения своих закрытых имплементаций)


1.15
Добавлена поддержка анализа и получения информации с испольняемых файлов PE-COFF и ELF-COFF(как двоичных испольняемых так и библиотек и объектных файлов)

1.17
Добавлена поддержка логических и опциональных блоков дающая
мощное расширение функциональности и увеличивающее гибкость OpenPtch посравнению с закрытыми конкурирующеми имплементациями.

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

Wildcards которые обозначались стандартным ? теперь могут обозначаться также и с помощью *.

1.18 - RC3
В процессе работы над RC версиями 1.18 были поправлены некоторые недоработки и баг появившийся в 1.17 - логические и опциональные блоки не функционировали в Байтовых паттэрнах(Только в полубайтовых).
Добавлена поддержка текстового блока(можно использовать ANSI текст напрямую в паттэрне) с оператором `text`.
Усовершенствован двоичный анализ файлов PE и ELF.
Теперь к функции анализа формата двоичного файла добавлены расширенные функции для PE и ELF соответственно которые предоставляют важную информацию из двоичного файла.


Последний раз редактировалось: vityan666 (Сб Янв 05, 2008 1:24 am), всего редактировалось 12 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
GunYa
Сержант
Сержант


Зарегистрирован: 18.01.2007
Сообщения: 88


СообщениеДобавлено: Вс Ноя 11, 2007 4:48 am    Заголовок сообщения: Ответить с цитатой

А оно готово уже? Surprised
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vityan666
CSMANiA ENGiNEER
CSMANiA ENGiNEER


Зарегистрирован: 14.04.2007
Сообщения: 137


СообщениеДобавлено: Вс Ноя 11, 2007 4:58 am    Заголовок сообщения: Ответить с цитатой

[GunYa]
Цитата:
А оно готово уже?

Почти.
Все функции уже пашут(специально проверял) в режиме байтовых паттэрнов. Полубайтовые думаю должны пахать на ура но хочу удостовериться перед релизом исходника и статических/динамических библиотек в паблик.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mukca
Местный ГУРУ
Местный ГУРУ


Зарегистрирован: 06.02.2005
Сообщения: 16777212
Откуда: с луны, со своей луны, свалился :(

СообщениеДобавлено: Вс Ноя 11, 2007 12:42 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Загрузка файла в память происходит сразу и целиком(Поэтому вам понадобится памяти минимум в размер загружаемого файла - Попробуйте грузануть 3 ГБ )

жестока..
правда я у ся на компе врядли когда либо буду делать патчик на файлик более 10 метров :D
_________________

Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


Читай
Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!

. Я не оДын
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vityan666
CSMANiA ENGiNEER
CSMANiA ENGiNEER


Зарегистрирован: 14.04.2007
Сообщения: 137


СообщениеДобавлено: Пн Ноя 12, 2007 12:16 am    Заголовок сообщения: Ответить с цитатой

И так обновления среды:

Dev C++ -> wxDev C++ -> Code::Blocks 4.11.07 Nightly Build
MingW GCC 4.2.1 DW2 -> TDM/MingW GCC 4.2.2-SJLJ

Со стриппингом символов размер либы сократился с 18-и кило до 10-и кило Smile

Щас буду делать пользовательскую либу и отделю определения ошибок в отдельный заголовочный файл.

Так как я пишу на C ,любителям объектов и прочей байды(обработка исключений,шаблоны и тд и тп - вообщем всё что не люблю я Very Happy) понадобится импортировать функции с использованием extern "C"...

[Обновление]
Вообщем всё уже почти готово. Поправил множество ошибок и недоработок.Добавил недостающие проверки на ошибки в некоторых местах и закончил пользовательские функции первого уровня(всё ещё относительно низкий уровень). Щас допишу пользовательскую функцию(единственную) 2-го уровня и займусь созданием документации.

Лицензия GPLv3 пока в раздумье так как разработчику UPK понадобится использовать эту библиотеку а GPL потребует открытия исходного кога его проекта(от чего я думаю он не будет в восторге хотя кто знает...). Альтернативой является отностительно restrictionless лицензия BSD хотя я не в восторе от разрешения использования своего труда в проприетарных проектах...

[Обновление2]
Бу Very Happy

Релизнул. Наверное наваял как всегда кучу глюков(Very Happy Very Happy) но хочеться верить что всё будет чики-пики.На выходных натестируюсь Smile

Первичный тест показал что использование пользовательской функции 2-го уровня пока что приводит к бесконечному циклу в программе... Отладка показала что проблема в парсэре паттэрнов... Завтра гляну что за фигня... Sad

[Обновление3]
Поправил все недочёты. Осталось исправить проблему с тем что даже если паттэрн найден(и заменён) пользовательская функция возвращает значение FALSE в массиве лога обработки...
Когда исправлю эту проблему выложу бэту 13...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vityan666
CSMANiA ENGiNEER
CSMANiA ENGiNEER


Зарегистрирован: 14.04.2007
Сообщения: 137


СообщениеДобавлено: Ср Ноя 21, 2007 10:33 pm    Заголовок сообщения: Ответить с цитатой

Наконец то нашёл время и поправил все задерживающие релиз проблемы Very Happy

Выпустил финальную версию библиотеки v1.0
Уряяя.

Скоро можно будет начать работу над новым юни пачем ко всем играм... Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
impulse666
Интригант и Словоблуд
Интригант и Словоблуд


Зарегистрирован: 08.12.2005
Сообщения: 4210
Откуда: From Hell

СообщениеДобавлено: Чт Ноя 22, 2007 12:03 am    Заголовок сообщения: Ответить с цитатой

даа, ктобы мне еще картинку дал, адекватную чтоб новость запостить...

vityan666, к сожелению там где я сейчас нахожусь, очень жесткий инет, перезалей файл еще куданибудь %)
_________________

Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!



Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!

Медик - это боевой клич!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vityan666
CSMANiA ENGiNEER
CSMANiA ENGiNEER


Зарегистрирован: 14.04.2007
Сообщения: 137


СообщениеДобавлено: Чт Ноя 22, 2007 5:57 am    Заголовок сообщения: Ответить с цитатой

[All]
Релизнул 1.01

Усовершенствования:
Дэфы для компоновки под windows(_WIN32_/__WIN32__) даже с помощью MSVC(_MSVC_/__MSVC__).
Под линухами и юних-лайками дэфы не требуются.

Добавлена моя 64-ёх разрядная либа под линух(в папке bin\linux) libOpenPtch.so(Проверил пачинг с ней же)

И...
[impulse666]
Залил 1.01 на sendfile Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
andreil
Source Developing
Source Developing


Зарегистрирован: 14.08.2006
Сообщения: 474
Откуда: Светлогорск, Беларусь

СообщениеДобавлено: Чт Ноя 22, 2007 7:30 pm    Заголовок сообщения: Ответить с цитатой

Коммандная строка поддерживается? Хотелось бы засунуть в УПК Smile

добавлено спустя 1 час 11 минут:

vityan666
А можно ли делать что-то тип обновлений для файлов? Если можно, то как?
_________________

Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!



Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
vityan666
CSMANiA ENGiNEER
CSMANiA ENGiNEER


Зарегистрирован: 14.04.2007
Сообщения: 137


СообщениеДобавлено: Чт Ноя 22, 2007 8:49 pm    Заголовок сообщения: Ответить с цитатой

[andreil]
Цитата:
А можно ли делать что-то тип обновлений для файлов? Если можно, то как?

Это будет поддерживаться в будущих версиях Wink

Пока что можно создавать пачи модифицирующие файл не меняя его размера(Плюс поиск и т.д и т.п)

Насчёт засунуть в UPK - это не библиотека пача под Valve как ты возможно ошибочно подумал. Это библиотека для создания профессионалных кросс-платформеных пачей общего назначения(по паттэрнам) - То есть если ты знаешь что надо менять и чем заменять то у тебя есть отличный инэтерфэйс для этого и в добавок ещё с открытым исходным кодом...

Насчёт самого UPK - UPK это твой проприетарный проект(исходники закрыты и они только у тебя) а я лицензирую под GPLv3 - То есть использование в рамках проектов с закрытым исходным кодом является нарушением лицензии GPL(и v2 и v3)... ХОтя думаю что с этой проблемой разберёмся Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vityan666
CSMANiA ENGiNEER
CSMANiA ENGiNEER


Зарегистрирован: 14.04.2007
Сообщения: 137


СообщениеДобавлено: Пт Ноя 23, 2007 7:32 pm    Заголовок сообщения: Ответить с цитатой

И так начинаю разработку расширений для OpenPtch:

Пока что плаг N1:
Обнаружения формата двоичного файла(MZ/NE/PE Executable - Executable/Library,ELF Executable - Executable/Shared Library/Dynamic Library) Very Happy Very Happy

Расширение API первого уровня для поиска
Расширение базового API для считывания данных с потока.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
andreil
Source Developing
Source Developing


Зарегистрирован: 14.08.2006
Сообщения: 474
Откуда: Светлогорск, Беларусь

СообщениеДобавлено: Сб Ноя 24, 2007 12:58 pm    Заголовок сообщения: Ответить с цитатой

vityan666
Я имел в виду патчер для Дедик.Серв., а то приходится таскать с УПК пропатченную библиотеку размером 3,5Мб, а так - только патчик.
_________________

Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!



Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
AGNESTEAM
Лейтенант
Лейтенант


Зарегистрирован: 02.02.2007
Сообщения: 119
Откуда: Я сделан в СССР !!! ))))

СообщениеДобавлено: Сб Ноя 24, 2007 9:51 pm    Заголовок сообщения: Ответить с цитатой

Могу сказать одно: двиг OpenPtch очень класная штука Smile , но у меня проблема в том , что неначем испробовать (VisualStudio2003 после переустановки винды ещё не ставил...) Sad
_________________

Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


HL2 , LOST , ENIGMA , Garry's mod , Trackmania , Counter-strike FAN!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
andreil
Source Developing
Source Developing


Зарегистрирован: 14.08.2006
Сообщения: 474
Откуда: Светлогорск, Беларусь

СообщениеДобавлено: Сб Ноя 24, 2007 10:00 pm    Заголовок сообщения: Ответить с цитатой

vityan666
Насчет моей просьбы - я имел в виду функцию вида : "Pathing(patchFile, Patch: string)" - это на Дельфи, на Си немного по другому, но принцип одинаков.
_________________

Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!



Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!


Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
impulse666
Интригант и Словоблуд
Интригант и Словоблуд


Зарегистрирован: 08.12.2005
Сообщения: 4210
Откуда: From Hell

СообщениеДобавлено: Вс Ноя 25, 2007 12:18 am    Заголовок сообщения: Ответить с цитатой

AGNESTEAM
а VS тебе непоможет, GCC компилятор вроде нужн %)
_________________

Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!



Ссылку могут видеть только зарегистрированные пользователи!
Зарегистрируйтесь или войдите в систему!

Медик - это боевой клич!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов .:csmania:. -> Developers Forum Часовой пояс: GMT + 5:30
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2007 phpBB Group
csmania.ru © 2004-2007 [email protected]