Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ваши методы разбора, чужого исходника 
:(
    Опции темы
Rickert
Дата 24.5.2007, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Расскажите о том, как вы разбираете чужой исходный код. Может быть у кого есть интересные приёмы?

Имеется ввиду разбор не программ типа hello world, а больших проектов.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
W4FhLF
Дата 24.5.2007, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Rickert, здесь подход стандартный. 
Я в качестве отладчика ring3 кода использую OllyDBG со своим набором плагинов, настроек и других особенностей(в том числе использую плагин для подключения сигнатур из ИДЫ). Ольга поддерживает отладочную информацию, так, что я её ещё использую и вместо стандартного отладчика MS VS.
В качестве дизассемблера ессно ИДА, тут тебе и символы, и сигнатуры и отладочная инфа и вообще самый умный движок, короче не знаю, что тут описывать, де факто просто smile
В качестве отладчика ring0 и драйверов раньше использовал WinDBG, реже SoftICE(ибо глючил, как только я с ним нен извращался), но WINDBG это конечно полный атас в плане юзабилити, что-то путём отладить надо сначала через задний проход подлезть.
Сейчас обороты набирает другой отладчик- Syser Debugger. Ещё немного сыроват, я слежу за ним с версии 1.2, последняя 1.9, уже есть поддержка символов и многих других особенностей(http://sysersoft.com/products.htm), очень перспективная разработка, вся надежда на неё. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Rickert
Дата 24.5.2007, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Я не про бинарник, а про исходник сам. smile


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
archimed7592
Дата 24.5.2007, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



W4FhLF, может я слепой, но речь, вроде про исходный код была smile 

Rickert, у больших проектов, как правило, есть какая-никакая документация... имхо, с неё начинать нужно...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
W4FhLF
  Дата 24.5.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Опа, палюсь smile


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
korbian
Дата 24.5.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Rickert @  24.5.2007,  09:42 Найти цитируемый пост)
как вы разбираете чужой исходный код

с интерфейсов, до низу.
если нет документации на исходник, беру листочек, карандашек и рисую диаграммки.
Оооочень редко, через Visio получаю class diagram.



--------------------
korbian ©
PM   Вверх
Rickert
Дата 24.5.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Я стараюсь найти основную функцию, так скзать "корень" от которого всё идёт и потом, от него наинаю рассматривать каждую строку одну за другой, появляются функции различные, тут же, при встрече, рассматриваю их. Так сказать выращиваю логическое дерево связей у себя в голове.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
dumb
Дата 24.5.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



для разбора чужих исходников сначала пытаюсь найти "корень зла", то бишь того падонка(ов), который эту муть(редко... редко чужой код радует глаз) написал - при помощи подручных средств можно в сжатые сроки вытянуть из него(них) смысл написанного. в случае, если падонков многовато(team), то лучше отлавливать их по одному. если поиск закончился неудачей, то очень помогает методика "не накапливай в себе, выражайся крепче"... smile главное забыть про поговорку "в чужом глазу соринку..." - мешает сосредоточиться и выражаться.

малозначительную помощь в этом неблагодарном занятии может оказать, например, doxygen.

ps. это кофе вштырило... smile

Цитата(Rickert @  24.5.2007,  09:36 Найти цитируемый пост)
Так сказать выращиваю логическое дерево связей у себя в голове. 

кстати, по поводу "головы": записывай, рисуй, узелки завязывай. иначе, в случае не маленького проекта и пары выходных с друзьями, придется заниматься такими "выращиваниями" каждый понедельник. smile
PM MAIL   Вверх
FiMa1
Дата 24.5.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А есть ли программы для разбора отдельных сложно-составных выражений в коде?
В целом же, в большом проекте, не плохо использовать продукты Source Insight, JGrasp, отличное подспорье при разборе кода, имхо. Кроме того, на выручку приходят системы контроля версий ПО.


Это сообщение отредактировал(а) FiMa1 - 24.5.2007, 10:52
PM   Вверх
v_nikolaev
Дата 24.5.2007, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(FiMa1 @ 24.5.2007,  10:49)
Кроме того, на выручку приходят системы контроля версий ПО.

ага, помогают понять, кто такую-то муть туда-то добавил smile
PM MAIL   Вверх
betal
Дата 24.5.2007, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



методом втыка.
Но все же надеюсь что код написан ясно и чисто.... smile 
--------------------
101100010100001101100001110100101111011легкие деньги
PM WWW ICQ   Вверх
Rickert
Дата 24.5.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



betal, наивный smile 

Это сообщение отредактировал(а) Rickert - 24.5.2007, 12:25


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Promitheus
Дата 24.5.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если смысл написанного не тривиален, то сначала пытаюсь откомпилить. Если не компилится  пытаюсь покопаться в настройках среды, если дело не в моей системе выкидываю исходник. Если же откомпилилась смотрю, что делает прога, хотя я примерно прдеставляю. Далее инициализации переменных при запуске окна, далее обработчики событий. Если тяжёлый случай, что пошаговая отладка с точками останова и наблюдение за содержимым переменных во время выполнения.  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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