877.88K
Категория: ИнформатикаИнформатика

Обратное проектирование, дизассемблирование

1.

Реферат на тему:
Обратное проектирование,
дизассемблирование
Муталибов Руслан Д-03-2ИСП

2.

Обратное проектирование - это специальный метод,
который позволяет воссоздать объект в виде виртуальной
модели по существующей физической детали. Полученная
3D модель в дальнейшем может использоваться для
конструирования (CAD), производства (CAM) и
проектирования на компьютере (CAE). Упрощенно этот
процесс можно представить как измерение объекта
специальным прибором (3D сканером) и последующую
реконструкцию в виде трехмерной модели.

3.

Задачи обратного проектирования
Задачи обратного проектирования (также используется реверс-инжиниринг) многообразны. Это и
определение функциональности продукта и отдельных его компонентов, восстановление и создание
технической документации. На современном производстве практически все детали проходят процедуру
3D сканирования для получения технической документации деталей, сконструированных до широкого
распространения программ САПР.
Измерение объектов может происходить с помощью аддитивной техники - стационарных и портативных
3D сканеров, а также роботизированных манипуляторов с установленным оборудованием для
сканирования. Данные, полученные в результате измерений - это облако точек, которое затем
преобразуется в файл STL (сетчатая структура с треугольной формой ячейки). Этот файл можно
использовать для моделирования твердотельных моделей САПР или совокупности поверхностей (NURBS
- неоднородные рациональные сплайны).
Обратное проектирование используется повсеместно - и в больших и в крупных компаниях.
Преобразование физических объектов в цифровые модели широко востребованы в
автомобилестроении, аэрокосмической промышленности, архитектуре и искусстве.

4.

Цель обратного проектирования
Для обратного проектирования важно точно понимать цель работы - знать результат
работы и точность проектирования. Настоящий процесс реверс-инжиниринга
намного более сложный, чем получение данных из цифровой модели. Можно легко
получить виртуальную модель с помощью сканирования, но на этом процесс
обратного проектирования не заканчивается.

5.

Измерение детали
Допуск
После определения требуемых
Детали или их элементы, которые имеют
результатов наступает время
форму призмы, а также отверстия,
для измерения деталей. Чтобы
рельефные плоскости и другие элементы,
выполнить эту процедуру с
требующие точности измерений менее 25
минимальными погрешностями,
микрон на метр, должны измеряться КИМ
необходимо проанализировать:
преимущественно контактным способом.
Характеристики детали;
Одним из недостатков сканирования с
Размеры объекта.
помощью датчиков является более
длительное время сканирования, в
результате чего деталь может быть сдвинута
с места. Для измерения гибких деталей
сложной формы можно применять
неконтактные способы сканирования.

6.

Элементы
Большинство
рельефные
Поле зрения
деталей
узоры,
имеют
отверстия,
Сканирование
позволяет
с
датчиками
достигать
острые края и другие элементы,
участков, находящихся вне
которые
в
поля зрения сканера. Работа
Оптические
в ограниченном пространстве
важно
учесть
проектировании.
сканеры
могут
очень
точно
измерять
все
нюансы,
но
также
может
качество
повлиять
на
получаемых
сканирование занимает достаточно
данных, так как не каждую
продолжительное
деталь можно отсканировать
Лазерные
сканеры
задачей
измерения
объектов,
но
время.
справятся
с
небольших
мелкие
важные
элементы могут быть потеряны в
шуме.
со всех сторон.

7.

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

8.

Дизассемблирование по используемому режиму работы
дизассемблеры подразделяются на следующие типы:
Дизассемблеры автоматического типа.
Дизассемблеры интерактивного типа.
Хорошим примером интерактивного дизассемблера может
служить программа IDA, которая позволяет менять
правила дизассемблирования и считается достаточно
удобным инструментальным набором, предназначенным
для исследования программ.

9.

Главная проблема
Главной проблемой при работе дизассемблера является реализация способности
отличать данные от машинных кодов. По этой причине при первых проходах
автоматически или интерактивно выполняется сбор информация о границах
процедур и функций, а уже на последнем проходе создается результирующий
листинг.
Интерактивность
предоставляет
возможность
улучшения
этого
процесса, поскольку, анализируя дамп дизассемблируемого участка памяти,
программист может тут же реализовать выделение строковых констант,
присвоить необходимые имена известным точкам входа, оставить комментарии
на уже изученные им участки программы.

10.

• Самыми распространенными являются двухпроходные
дизассемблеры, позволяющие получать метки в листинге
дизассемблирования, но, которые не могут решить полностью
проблемы разделения команд и данных. После них пользователь
должен в ручном режиме подправить сомнительные места.
• Наиболее часто дизассемблер применяют для изучения
программы (или ее фрагмента), исходный текст которой является
неизвестным, с целью ее изменения, копирования или взлома.
Реже дизассемблер используется для обнаружения ошибок в
программах и компиляторах, а также для исследования и
оптимизации формируемого компилятором машинного кода.
English     Русский Правила