Слайд 2
Обратное проектирование - это специальный метод, который позволяет воссоздать объект в виде виртуальной модели по существующей физической детали. Полученная 3D модель в дальнейшем может использоваться для конструирования (CAD), производства (CAM) и проектирования на компьютере (CAE). Упрощенно этот процесс можно представить как измерение объекта специальным прибором (3D сканером) и последующую реконструкцию в виде трехмерной модели.
Слайд 3
Задачи обратного проектирования Задачи обратного проектирования (также используется реверс-инжиниринг) многообразны. Это и определение функциональности продукта и отдельных его компонентов, восстановление и создание технической документации. На современном производстве практически все детали проходят процедуру 3D сканирования для получения технической документации деталей, сконструированных до широкого распространения программ САПР. Измерение объектов может происходить с помощью аддитивной техники - стационарных и портативных 3D сканеров, а также роботизированных манипуляторов с установленным оборудованием для сканирования. Данные, полученные в результате измерений - это облако точек, которое затем преобразуется в файл STL (сетчатая структура с треугольной формой ячейки). Этот файл можно использовать для моделирования твердотельных моделей САПР или совокупности поверхностей (NURBS - неоднородные рациональные сплайны). Обратное проектирование используется повсеместно - и в больших и в крупных компаниях. Преобразование физических объектов в цифровые модели широко востребованы в автомобилестроении, аэрокосмической промышленности, архитектуре и искусстве.
Слайд 4
Цель обратного проектирования Для обратного проектирования важно точно понимать цель работы - знать результат работы и точность проектирования. Настоящий процесс реверс-инжиниринга намного более сложный, чем получение данных из цифровой модели. Можно легко получить виртуальную модель с помощью сканирования, но на этом процесс обратного проектирования не заканчивается.
Слайд 5
Измерение детали После определения требуемых результатов наступает время для измерения деталей. Чтобы выполнить эту процедуру с минимальными погрешностями, необходимо проанализировать: Характеристики детали; Размеры объекта. Допуск Детали или их элементы, которые имеют форму призмы, а также отверстия, рельефные плоскости и другие элементы, требующие точности измерений менее 25 микрон на метр, должны измеряться КИМ преимущественно контактным способом. Одним из недостатков сканирования с помощью датчиков является более длительное время сканирования, в результате чего деталь может быть сдвинута с места. Для измерения гибких деталей сложной формы можно применять неконтактные способы сканирования.
Слайд 6
Элементы Большинство деталей имеют рельефные узоры, отверстия, острые края и другие элементы, которые важно учесть в проектировании. Оптические сканеры могут очень точно измерять все нюансы, но сканирование занимает достаточно продолжительное время. Лазерные сканеры справятся с задачей измерения небольших объектов, но мелкие важные элементы могут быть потеряны в шуме. Поле зрения Сканирование с датчиками позволяет достигать участков, находящихся вне поля зрения сканера. Работа в ограниченном пространстве также может повлиять на качество получаемых данных, так как не каждую деталь можно отсканировать со всех сторон.
Слайд 7
дизассемблирование Дизассемблером является транслятор, который преобразует машинный код, объектный файл или библиотечные модули в текстовый формат программы на языке ассемблера. То есть, дизассемблированием считается операция, которая является обратной ассемблированию, а именно, это восстановление текста программы на языке ассемблера из исполняемой программы в машинных кодах. Необходимо отметить, что, если выполнить повторное ассемблирование восстановленного текста, то нельзя гарантировать получение того же самого кода. А это означает, что есть вероятность того, что восстановленная таким образом программа может оказаться неработоспособной. Также следует подчеркнуть, что любые попытки модификации дизассемблированного текста способны привести к развалу программы. Проблема состоит в том, что ассемблер выполняет замену всех меток на константы, поэтому при осуществлении изменений в программе, следует откорректировать все ссылки на метки.
Слайд 8
Дизассемблирование по используемому режиму работы дизассемблеры подразделяются на следующие типы: Дизассемблеры автоматического типа. Дизассемблеры интерактивного типа. Хорошим примером интерактивного дизассемблера может служить программа IDA, которая позволяет менять правила дизассемблирования и считается достаточно удобным инструментальным набором, предназначенным для исследования программ.
Слайд 9
Главная проблема Главной проблемой при работе дизассемблера является реализация способности отличать данные от машинных кодов. По этой причине при первых проходах автоматически или интерактивно выполняется сбор информация о границах процедур и функций, а уже на последнем проходе создается результирующий листинг. Интерактивность предоставляет возможность улучшения этого процесса, поскольку, анализируя дамп дизассемблируемого участка памяти, программист может тут же реализовать выделение строковых констант, присвоить необходимые имена известным точкам входа, оставить комментарии на уже изученные им участки программы.
Последний слайд презентации: Обратное проектирование
Самыми распространенными являются двухпроходные дизассемблеры, позволяющие получать метки в листинге дизассемблирования, но, которые не могут решить полностью проблемы разделения команд и данных. После них пользователь должен в ручном режиме подправить сомнительные места. Наиболее часто дизассемблер применяют для изучения программы (или ее фрагмента), исходный текст которой является неизвестным, с целью ее изменения, копирования или взлома. Реже дизассемблер используется для обнаружения ошибок в программах и компиляторах, а также для исследования и оптимизации формируемого компилятором машинного кода.