Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Инженерите понякога трябва да мислят в обратна посока, за да анализират даден продукт. Например, машинен инженер може да направи изводи за производството на продукт въз основа на неговия дизайн и физически свойства. Те дори могат да произведат същия продукт, ако имат задълбочено разбиране за него.

Можете също така да оприличите обратното инженерство на доказателствата на математическите уравнения. И така, как се използва обратното инженерство?

Какво е обратно инженерство?

Обратното инженерство е процесът на анализиране на система с цел нейното възпроизвеждане или подобряване. Ако погледнете работните области на обратното инженерство, можете да видите, че можете да го използвате за много различни цели. Ако го погледнете от гледна точка на киберсигурността, е възможно да извършите следните операции с методи за обратно инженерство:

  • Анализ на изходния код на софтуер с неотворен код
  • instagram viewer
  • Анализ на уязвимостта
  • Анализ на зловреден софтуер
  • Кракване и закърпване

Можете да видите обратното инженерство, използвано дори в компютърните игри в наши дни. Например разработчиците често създават софтуерни модификации, използвайки методи за обратно инженерство.

В областта на обратното инженерство има два различни метода за анализ: статичен и динамичен. Извършвате статичен анализ, когато анализирате програма, без реално да я изпълнявате. Динамичният метод за анализ, от друга страна, изисква да стартирате програмата, за да наблюдавате нейното поведение и данните, които използва.

Но преди да извършите анализ за обратно инженерство, трябва да знаете някои важни термини как работи компютърната архитектура.

Основни части на компютърната архитектура

Обратното инженерство е практически невъзможно, освен ако не разбирате компютърната архитектура. Трябва да изучите четирите основни части:

  • Вход: Набор от методи за въвеждане на данни.
  • процесор: Централният процесор обработва входящите данни и ги предава на своите собственици. Това е централната процесорна единица.
  • памет: Пространството, което временно съхранява данни по време на обработка.
  • Изход: Резултатът, който крайният потребител вижда.

Можете да имате предвид всички тези основни проблеми с пример, като например когато натиснете буквата A на клавиатурата. Когато го натиснете, възниква събитие за въвеждане. След този етап процесорът обработва данните и използва малко пространство в паметта, за да ги съхрани. Накрая ще видите буквата A на екрана си, завършвайки процеса с извеждане.

Гмурнете се в дълбините на процесора

Ако наистина искате да станете експерт в обратното инженерство и да се потопите дълбоко в тази тема, трябва да имате подробни познания за хардуера, езиците на ниско ниво и особено за процесора. Ключовите теми, които трябва да знаете за процесора, са:

  1. Контролен блок: Отговаря за обработката на данни в процесора и прехвърлянето им към съответните полета. Можете да мислите за това устройство като за механизъм за контрол на маршрутизирането.
  2. ALU: Това означава аритметична логическа единица. Тук се извършват някои аритметични и логически операции. Ако се задълбочите в математиката, ще видите, че основните четири операции са по същество вариации на събирането. Така че ALU се основава на агрегиране. Например изваждането на две от три е същото като добавянето на минус две към три.
  3. Регистри: Това са зоните вътре в процесора, които съдържат обработените данни. Има различни типове регистър, подобно на различните типове променливи в езика за програмиране. Регистърът е отговорен за поддържането на типа и атрибутите на присвоените му данни.
  4. Сигнали: Ако искате процесорът да извършва много различни операции едновременно, е необходим някакъв метод за тяхното организиране. Елементите, които правят това, се наричат ​​сигнали. Всяка транзакция действа според сигнали, които гарантират, че не пречи на друг процес.
  5. автобус: Пътят, използван от данните за преминаване от една единица към друга. Обърнете внимание как името подсказва транспорт.

Концепции, които често ще чувате при обратното инженерство

Разбирането как процесорът обработва данни и ги съхранява в паметта, заедно с концепцията за регистрите, може да бъде много полезно при обратно инженерство. По-конкретно, можете да използвате диаграмата по-долу, за да разберете по-добре концепцията за паметта:

И накрая, за анализ на обратно инженерство трябва да знаете някои основни концепции за регистрите. Те са една от темите, върху които ще се съсредоточите най-много. Ето някои обяснения за данни, указатели и регистри на индекси, които ще ви бъдат полезни по най-сбит начин:

  • 1. EAX: Означава акумулаторен регистър. Обикновено записва данни, които попадат в категорията на аритметичните операции тук.
  • 2. EBX: Съкращение за основен регистър. Той играе роля в непрякото адресиране.
  • 3. EDX: Съкращение за регистър на данни. EDX помага на други регистри.
  • 4. EIP: Означава показалеца с инструкции. Съдържа адреса на домейна за изпълнение.
  • 5. ESP: Съдържа основния адрес.
  • 6. ESI: Съдържа информацията за индекса на източника.
  • 7. EDI: Запазва информацията за индекса на местоназначението.

Трябва да проучите всички тези поотделно, за да разберете техните нюанси. Но ако погледнете основите и се опитате да разберете бизнес логиката, без значение с каква процесорна архитектура работите, анализът на кода за обратно инженерство ще бъде доста лесен.

Обратното инженерство често започва с машинен код. Може да разберете много от горните термини, ако сте запознати с асемблирането или владеете 32-битови или 64-битови процесорни архитектури. Ако искате да научите сглобяването от самото начало, това ще бъде изключително полезно при обратното инженерство.

Какво ще правите с всичко това?

Ако имате добри познания по обратен инженеринг, можете да правите анализ на код без значение с каква операционна система или процесорна архитектура работите. Например, възможно е да намерите кракнати версии на много програми или компютърни игри. Това е напълно незаконен метод.

Въпреки това, ако възнамерявате да бъдете професионалист по етична киберсигурност, ще трябва да използвате обратен инженеринг, за да разберете защо тези кракнати програми се кракват. Ако искате да напреднете в обратното инженерство или тепърва започвате, би било добър избор, ако се опитате да научите за връзката между хардуера и машинния код.