Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Тулза для извлечения полезного кода из существующих исходников

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Тулза для извлечения полезного кода из существующих исходников
Имя
Сообщение << Старые топики   Новые топики >>
Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 10:55:16.890000   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
Всем доброго времени суток!

Есть исходники некоторой библиотеки, написанной на языке С, и есть необходимость использовать около 5% её экспортируемых объявлений.

Необходимо извлечь весь код из библиотеки, который реализует эти 5%.

Есть ли какие либо тулзы позволяющие это сделать?

Спасибо за внимание.
Post #: 1
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 10:57:22.646666   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
А скопипастить то что нужно не вариант?
Post #: 2
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 10:58:36.483333   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
В этом и проблема, что нужно искать по всему коду все зависимости нужного объявления. Интересует тулза которая делала бы это автоматом.
Post #: 3
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 13:26:02.813333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Step-by-step debug -> Profit!

Имхо, в коммерческих проектах проще таскать библиотеку с собой, даже ради 5% функций. Нет никакого смысла, а тем более технической возможности (мало ли что там намудрили с неэкспортируемыми функциями, которые юзаются только внутри библиотеки) определить по исходникам что и где используется, чтобы выдрать какой-то функционал. Хотя тот же буст написан грамотно и там получается выдирать отдельные файлы, чтобы не таскать весь буст с собой.

З.Ы. для managed кода такую тулзу вполне можно написать, но опять же - её оправданность очень сомнительна.
Post #: 4
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 13:54:59.563333   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
Оправданность есть, когда нужно сертифицировать прогу и от размера её исходников меняется стоимость сертификации. Вообщем все случаи, когда важен размер исходников и самой проги.

И вообще, я вот например очень не люблю наличие лишнего кода в программе.

Наверное придеться самому такую программу писать.

Может обсудим алгоритм работы такой проги?
Post #: 5
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 14:25:32.040000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Что ты понимаешь под "лишним кодом"? Написание качественных велосипедов вместо использования готовых библиотек - как правило, непозволительная роскошь.

Я не осведомлён о процессах сертификации ПО, но неужели нужно предоставлять исходный код? Я как-то сильно в этом сомневаюсь. Он ведь может составлять коммерческую тайну. Как вариант - можно использовать заранее сертифицированную библиотеку… Хотел бы я посмотреть на отечественных специалистов, которые занимались сертификацией компиляторов и библиотек типа qt или boost. Ведь, как я понимаю, сертифицированная программа должна быть скомпилирована сертифицированным компилятором :)

Ты прав, давай лучше обсудим прогу.
Post #: 6
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 14:51:26.550000   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000

quote:

ORIGINAL: _SaZ_

Написание качественных велосипедов вместо использования готовых библиотек - как правило, непозволительная роскошь.



Так вот я и не хочу писать велосипед, а взять исходники, но только те, что мне нужны.

quote:

Я не осведомлён о процессах сертификации ПО, но неужели нужно предоставлять исходный код? Я как-то сильно в этом сомневаюсь. Он ведь может составлять коммерческую тайну. Как вариант - можно использовать заранее сертифицированную библиотеку… Хотел бы я посмотреть на отечественных специалистов, которые занимались сертификацией компиляторов и библиотек типа qt или boost. Ведь, как я понимаю, сертифицированная программа должна быть скомпилирована сертифицированным компилятором :)


Ага, исходный код нужен. Qt и boost тоже проходят сертификацию каждая версия отдельно. Т.е. ты можешь заказать сертификацию последней версии Qt, но стоить это будет немеренно.

quote:

Ты прав, давай лучше обсудим прогу.


Задаем набор исходников, задаем кусок кода (текст функции например) который нужно вычленить. Программа смотрит набор функций который в неё входят и ищет их в ноборе исходников. Если находит рекурсивно делает тоже самое.

Вот с макросами тут засада. Как вариант сначала ищем все макро в исходниках и смотрим нет ли их в просматриваемом тексте. Если есть, то ищем зависимости этого макроса внутри исходников.

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

Что-то мне подсказывает что в таком алгоритме могут возникать петли.
Post #: 7
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 15:01:28.710000   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
Кстати, возникла идея с макросами.

Данную тулзу разбить на два этапа.

1. В том месте, где define вставляет код, вставляем его туда мы сами. Получаем модифицированные исходники без define содержащих код.
2. Эти исходники уже анализируем и ищем функции входящие в состав анализируемого участка кода.

Как идея?
Post #: 8
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 19:40:47.833333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Я думал обсудим прогу, которую ты сертифицировать собрался. Скомпилируй либу, и скажи, что она уже шла готовой :)

По теме - немного погуглив я так и не нашёл ни в одном порядке сертифицирования пункта о том, что должна вестись проверка исходников. И опять же - какие библиотеки ты используешь в своей проге и с помощью каких библиотек сделан UI, (Надеюсь, не на голом WinAPI =) и прошли ли они сертификацию?

З.Ы. написать прогу, которую ты хочешь не сильно легче, чем написать свой компилятор / профайлер. Нормально с такой задачей я не справлюсь. Да и времени уйдёт куда больше, чем перелопатить всю библиотеку вручную. Если будешь писать - сразу учти, что есть макросы, рекурсия и указатели на функции. Хотя тебе очень повезло, что библиотека написана на Си, а не на С++.
Post #: 9
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 22:19:34.040000   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
quote:

ORIGINAL: _SaZ_

Я думал обсудим прогу, которую ты сертифицировать собрался. Скомпилируй либу, и скажи, что она уже шла готовой :)



Блин, а я обрадовался! :(

quote:


По теме - немного погуглив я так и не нашёл ни в одном порядке сертифицирования пункта о том, что должна вестись проверка исходников. И опять же - какие библиотеки ты используешь в своей проге и с помощью каких библиотек сделан UI, (Надеюсь, не на голом WinAPI =) и прошли ли они сертификацию?



Смотри здесь например:
http://wikisec.ru/index.php?title=%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BA_4_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8E_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F_%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D0%B8%D1%8F_%D0%9D%D0%94%D0%92#.D0.98.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D1.8B.D0.B5_.D1.82.D0.B5.D0.BA.D1.81.D1.82.D1.8B_.D0.9F.D0.9E
quote:

З.Ы. написать прогу, которую ты хочешь не сильно легче, чем написать свой компилятор / профайлер. Нормально с такой задачей я не справлюсь. Да и времени уйдёт куда больше, чем перелопатить всю библиотеку вручную. Если будешь писать - сразу учти, что есть макросы, рекурсия и указатели на функции. Хотя тебе очень повезло, что библиотека написана на Си, а не на С++.


Да, про рекурсию забыл, но защиту поставить не проблема от нее. Понятно что времени уйдет много, но зато решение на потом, часто же исходники разбираешь.
Post #: 10
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 22:22:22.926666   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
Блин, чо линк нормально не вставляется?
Post #: 11
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-08 23:09:16.360000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Используй библиотеку как стороннюю. Там не сказано, что надо код сторонних библиотек сертифицировать.
Post #: 12
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-09 09:06:52.106666   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
quote:

ORIGINAL: _SaZ_

Используй библиотеку как стороннюю. Там не сказано, что надо код сторонних библиотек сертифицировать.


Но я то знаю что нужно! :(

Весь код, необходимо сертифицировать. Если код сторонних библиотек закрыт, то использовать его нельзя.
Post #: 13
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-09 12:54:48.716666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Ну так открой, если он у тебя есть :)
Post #: 14
RE: Тулза для извлечения полезного кода из существующих исходников - 2011-08-09 13:00:19.766666   
mavok

Сообщений: 31
Оценки: 0
Присоединился: 2011-08-08 10:52:34.890000
Не-не-не-не-не, Дэвид Блэйн!

Да нечего открывать. Просто часто роюсь с исходниками, решил вот автоматизировать процесс вычленения нужного кода.
Post #: 15
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Тулза для извлечения полезного кода из существующих исходников







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.