Този инструмент често се нарича обратен анализ и се разглежда като основна дейност в индустрии, които имат за цел да проучат определен продукт, устройство, или система. Включва процеса на разкъсване на обект на части, така че идеите за неговата конструкция, части, и употребата може да бъде възприета. Може да бъде полезно по няколко причини, включително подобряване на продуктите, копиране на дизайни, или отстраняване на проблеми. Тук в тази статия, ще обсъдим какво представлява обратното инженерство, защо се използва, където се използва, процесите, използвани в обратното инженерство, и използваните инструменти.
Какво означава обратно инженерство?
Обратното инженерство означава дисекция на продукт, устройство, или система, за да разберете нейната функционалност, архитектура, или дори естетика. Анализирането позволява на индивид или организация да възстанови по-добър продукт в резултат на получаване на важна информация от дадения продукт. Този процес се прилага, за да се установи как този дизайн функционира или се проваля, открийте недостатъците, или реализиране на дизайн при условия, при които първоначалните насоки са били загубени.
Как работи процесът на обратно инженерство?
Обратното инженерство е сложен процес, който се извършва в няколко стъпки за анализ на дизайна, компоненти, и работа на определена система или продукт. Процесът варира в зависимост от вида на обратното инженерство (софтуер, хардуер, или други системи), но обикновено следва подобен набор от фази:
1. Събиране и подготовка на данни
Първата дейност в процеса на обратно инженерство е колекцията от обекти или системата за обратно инженерство. При софтуерното обратно инженерство това може да бъде под формата на получаване на компилиран код, докато при хардуерно обратно инженерство може да включва разглобяване на хардуерни части. При оценяване, инженерите също събират всяка съществуваща литература, включително ръководства, чертежи, или изисквания за проектиране, за да се обясни ситуацията.
2. Разглобяване или декомпилиране
Следващата стъпка е да разложите системата на нейните компоненти. Първата стъпка от използването на системата е за цялостния изглед на системата. В софтуерното обратно инженерство, това идва под формата на декомпилиране или разглобяване на софтуера, за да разгледате архитектурата му. За хардуер, това може да включва действително разглобяване на оборудването, или може би да го дисектирате, за да изследвате платките и компонентите. Това се разглежда като опит да се постави основната рамка на системата.
3. Анализ и разбиране
Докато обратните инженери отделят време и се опитват да намерят най-добрата стратегия за децентрализация на системата, те същевременно се опитват да определят как функционират частите на системата. За софтуер, може да включва анализиране на потока на изпълнение на приложението, изолиращи функции, контроли, както и възможни слабости в кода на приложението. В хардуера, инженерите изучават работата на компонентите и връзките, които имат един с друг: често използват използването на осцилоскопи и логически анализатори, за да получат представа за явленията в действителното време.
4. Идентификация на модел и функционалност
На този етап, обратните инженери търсят модели за това как работи системата. В софтуера, те може да са в състояние да опишат основните характеристики, входове и изходи, и обработка в системата. Относно хардуера, това може да доведе до повторно проследяване на връзките на веригите или определяне как определени части на устройство (включително резистори, кондензатори, или процесори) работят един с друг. Тази стъпка често разкрива и други функции, често погребани характеристики и характеристики, и доста често други поведения и резултати.
5. Тестване и валидиране
В случай на софтуер, това може да означава използването му в тестова среда за идентифициране на по-неясни уязвимости в работата му. В случай на хардуер, тестването може да означава, че артикулът е разглобен и след това отново сглобен, и се използва за установяване как се променя неговата производителност, когато се променят други променливи като напрежение или честота. Тази фаза подпомага проверката на констатациите и гарантира, че нито една част не е останала незабелязана.
6. Документация и отчетност
Документирането се извършва след извършен анализ и валидиране в процеса на обратно инженерство. В софтуера, това може да означава рисуване на картини за това как работят програмите, и всички недостатъци, както е споменато по-горе, са открити. Съдържанието на специализиран софтуер може да изисква скициране на физическия дизайн на хардуера, или изготвяне на чертеж на устройството, което трябва да бъде инсталирано. Документацията е много важна, за да можете да четете системата за обратно проектиране в бъдеще за допълнения или промени, които трябва да бъдат направени.
7. Етика и Закон (НИЕ) (Не е задължително)
Всеки път процесът на обратно инженерство включва разработени материали, които са патентовани или защитени с авторски права, инженерите трябва да обмислят анализ на етичните и правни последици. Това означава например да се уверите, че обратното инженерство се извършва законно (изследване на сигурността, съвместимост, ремонт...) и че правата на интелектуална собственост не са нарушени.
Видове обратно инженерство
Ето някои важни видове обратно инженерство:
1. Статичен анализ
Това е процесът на изследване на кода или системната структура, без да се изпълнява. Статичният анализ се занимава с преглед на двоичния или изходния код на софтуера с цел изучаване на неговия дизайн, архитектура, и операция. Улеснява откриването на техните слабости и основни модели, когато приложенията все още не са изпълнени.
2. Динамичен анализ
Това включва изследване на поведението на системата, когато се използва. Докато статичният анализ се фокусира върху кода, без неговото изпълнение, динамичният анализ наблюдава как работи софтуерът, което му позволява да открива грешки по време на изпълнение или някои „хакнати“ функции.
3. Хибриден анализ
Както статични, така и динамични видове анализи. Работи чрез комбиниране на подходите, което увеличава шанса за получаване на максимални данни за това как е проектирана системата и как функционира. Хибридният анализ се използва особено за по-сложни задачи, включително анализ на зловреден софтуер, където кодът и приблизително поведението в реално време са от съществено значение.
4. Двоичен анализ
Това се отнася до разглобяване на предварително компилирани изпълними файлове и установяване как работи система, за която няма наличен изходен код. Двоичният анализ позволява на обратните инженери да установят мисловния процес при създаването на изпълнимия файл, установете уязвимостите в сигурността, и, евентуално, направете необходимите възстановявания.
5. Декомпилация
Процес, при който език от по-ниско ниво, т.е., двоичният код се превежда в кода на езика от по-високо ниво. Поради липсата на оригиналния изходен код, няколко инженера използват декомпилиране, за да дешифрират логиката на програмата, тъй като те трябва да декомпилират програмата. Настоящите подходи за използването му включват софтуерно обратно инженерство и анализ на зловреден софтуер.
Каква е целта на обратното инженерство?
Основните му цели са дадени по-долу:
- Подобряване на продукта: Обратното инженерство позволява на една компания да разгледа продукта на конкурент, откриване на дефекти, и промени в продукта за подобряване на продукта, и подобряване на функцията, изпълнение, и/или ефективност.
- Възпроизвеждане на продукти: Позволява извършването на подобно производство, когато първоначалният дизайн не може да бъде намерен, например, когато се изискват замени или когато се произвеждат клонове на подобни продукти на пазара.
- Подобряване на дизайна: Текущият анализ на продукта помага на инженерите да идентифицират някои области, които могат да предизвикат идеи за текущи еволюции или подобрения на модела.
- Отстраняване на неизправности и ремонт: Обратното инженерство също е полезно за отстраняване на проблеми с продукти или системи; дефектният компонент може да бъде копиран и върнат на оригиналното оборудване, за да се поправи.
- Трансфер на знания и учене: Едно от най-важните предимства на такива уебсайтове е възможността компаниите да проучват конкурентни продукти или технологии.
Някои често срещани примери за обратно инженерство
Обратното инженерство се използва широко в много сектори, като се започне от военните и се стигне до софтуера и механиката. Ето няколко примера:
1. Военни приложения
Военната сила понякога придобива заловено оборудване или оръжия. Те могат да се използват за изследване на слабости, които могат да бъдат използвани в случай на атака. Военни и технолози могат да открият принципите на това как работят технологиите на враговете чрез обратно инженерство. Това им позволява да търсят възможни области, които да бъдат заслепени по време на бойни операции или да работят върху тях, за да измислят достойни.
2. Медицински приложения
Чрез изучаване на връзките между гените за извеждане на сложните пътища за предаване напред. Изследователите могат да научат за мрежата от болести и да предвидят потенциални места за лечение. Обратното инженерство също така позволява на изследователите да анализират как произведените гени се свързват помежду си и влияят върху фундаменталните биологични процеси. Неспециалистите могат да научат подробности за прогресията на заболяването и заключения относно лекарствените реакции и прогнозата на пациента. Такава информация полага основата за рационални терапии.
3. Софтуерно инженерство
В софтуерното инженерство, обратното инженерство е особено важно, когато изходните кодове липсват. В такива случаи, обратното инженерство може да се използва от разработчика, за да се проучи работата на съществуваща софтуерна система. По същата бележка, обратното инженерство помага за възстановяване на алгоритмите, структури от данни, и дизайнерски модели, използвани в миналия проект, като по този начин улесняват бъдещата употреба.
4. Машинно инженерство
Когато механично устройство се повреди, може да е полезно да направите обратно инженерство на машината, за да разберете характеристиките, които причиняват повредата. По този начин, инженерите могат да придобият представа как е проектиран и произведен уредът, като го изучават на части. Това им позволява да идентифицират области на слабост или стрес, които биха могли да доведат до проблема на първо място.
Предимства на обратното инженерство
Следните са предимствата на обратното инженерство:
- Спестяване на разходи: Това е така, защото чрез копиране на продукт или част, за компаниите е по-лесно да спестят от разходите за проектиране, както и от действителните производствени разходи.
- Иновация: Използва се за подобряване на съществуващи продукти и генериране на нови концепции от стари технологии.
- Отстраняване на неизправности: Може да посочи с пръст системните повреди или проблемите с производителността.
- Конкурентно предимство: Помага на компаниите да следват тенденциите на пазара, научаване за продуктите на конкурентите.
- Персонализиране на продукта: Променя и персонализира продуктите, за да отговарят на потребителското изживяване по начини, които биха могли да бъдат по-ефективни.
Предизвикателства, свързани с обратното инженерство
Проблеми с интелектуалната собственост: Обратното инженерство обикновено води до спорове по въпроси като патенти и авторски права.
- Отнема много време: Процесът отнема много време, продуктът е сложен, и може да отнеме много време.
- Неточност: Има някои недостатъци с данните с обратно проектиране: Събирането на данни може да не е изчерпателно, данните може да не са правилни.
- Скъпи инструменти: Струва си да се отбележи, че инструментите и софтуерът за обратно инженерство са доста скъпи.
- Етични дилеми: Всяка организация, използваща проекти за обратно инженерство, може да се натъкне на някои етични предизвикателства.
Някои от обичайните употреби на обратното инженерство
- производство: Подмяна на износени машинни части по време на производство или поправка на стари машини, които може да са станали нефункциониращи.
- Разработка на софтуер: Пускане на софтуерни корекции за справяне със съществуващи или измислени алтер-его версии, съвместими с проблеми със сигурността.
- Автомобилно инженерство: Обясняване на различни части на автомобил за поправка или модификация.
- Космонавтика: Когато производителите разглобяват самолети за тестови полети или се опитват да коригират някои недостатъци в определени части на самолета, те трябва да направят обратно инженерство на дадените части.
- Потребителска електроника: Разбиване на прототипи до проектиране на подобни устройства или подобряване на ефективността на устройството.
Заключение
Обратното инженерство е широко използвано и по-скоро междуотраслова дейност, приложима в автомобилостроенето, електроника, софтуер, и т.н. разбира се, с големи възможности за намаляване на разходите, иновативно решаване на проблеми, и откриване на грешки, възникват правни и етични проблеми. Познаване на възможните видове обратно инженерство, методи, и областите на използване могат да накарат една компания да го използва ефективно и да избегне възможни клопки. Свържете се с нас за повече информация.
ЧЗВ
Каква е ролята на обратното инженерство в киберсигурността?
Това се използва за откриване на рискове, и разбираем зловреден софтуер, и в процеса на проектиране на защитни механизми.
Може ли да се приложи обратно инженерство при производството на фалшиви стоки?
разбира се, може да се използва за производство на фалшиви продукти, въпреки че този процес е забранен, както и неморален.
Целият софтуер подлежи ли на криминалистична реконструкция?
Би било уместно да се отбележи, че въпреки че повечето софтуерни програми могат да бъдат обратно проектирани до известна степен. въпреки това, нивото на трудност, което се среща, не е подобно. Софтуер, който е бил строго кодиран или опакован с много слоеве на кодиране, може да бъде много труден за анализ.